/* * Реализация */ #region private void BuildControls() /// <summary> /// Строит нужные контролы /// </summary> private void BuildControls() { // Освобождаем старые контролы flowLayoutPanel1.Controls.Clear(); int count = 5; if (Flight != null && Flight.OilConditionCollection != null && Flight.OilConditionCollection.Count > count) { count = Flight.OilConditionCollection.Count; } for (int i = 0; i < count; i++) { // Добавляем контрол для ввода данных по маслу ComponentOilControl c = new ComponentOilControl(); if (Flight != null && Flight.OilConditionCollection != null && i < Flight.OilConditionCollection.Count) { c.OilCondition = Flight.OilConditionCollection[i]; } else if (Flight != null) { ComponentOilCondition condition = new ComponentOilCondition(); c.OilCondition = condition; } // this.flowLayoutPanel1.Controls.Add(c); } }
private void OilConditionControlDeleted(object sender, EventArgs e) { ComponentOilControl control = (ComponentOilControl)sender; ComponentOilCondition cond = control.OilCondition; if (cond.ItemId > 0 && MessageBox.Show("Do you really want to delete oil condition?", "Deleting confirmation", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { //если информация о состоянии сохранена в БД //и получен положительный ответ на ее удаление try { GlobalObjects.NewKeeper.Delete(cond); } catch (Exception ex) { Program.Provider.Logger.Log("Error while removing data", ex); } flowLayoutPanelMain.Controls.Remove(control); control.Deleted -= OilConditionControlDeleted; control.AfterRemainChanget -= ItemAfterRemainChanget; control.RefuelChanget -= ItemRefuelChanget; control.OnBoardChanget -= ItemOnBoardChanget; control.SpentChanget -= ItemSpentChanget; control.BeforeRemainChanget -= ItemBeforeRemainChanget; control.ComponentChanget -= ItemComponentChanget; control.OilFlowChanget -= ItemFlowChanget; SetOilFlow(control.PowerUnit); control.Dispose(); } else if (cond.ItemId <= 0) { flowLayoutPanelMain.Controls.Remove(control); control.Deleted -= OilConditionControlDeleted; control.AfterRemainChanget -= ItemAfterRemainChanget; control.RefuelChanget -= ItemRefuelChanget; control.OnBoardChanget -= ItemOnBoardChanget; control.SpentChanget -= ItemSpentChanget; control.BeforeRemainChanget -= ItemBeforeRemainChanget; control.ComponentChanget -= ItemComponentChanget; control.OilFlowChanget -= ItemFlowChanget; SetOilFlow(control.PowerUnit); control.Dispose(); } GetTotalBefore(); GetTotalRefuel(); GetTotalOnBoard(); GetTotalSpent(); GetTotalAfter(); }
/// <summary> /// Существует ли информация по уровню масла для заданного агрегата /// </summary> /// <param name="con"></param> /// <returns></returns> private bool ConditionExists(ComponentOilCondition con) { // if (Flight == null || Flight.OilConditionCollection == null) { return(false); } // for (int i = 0; i < Flight.OilConditionCollection.Count; i++) { if (Flight.OilConditionCollection[i] == con) { return(true); } } // return(false); }
/// <summary> /// Контрол редактирует данные о залитом масле для одного агрегата /// </summary> public ComponentOilControl(Aircraft aircraft, ComponentOilCondition condition): this() { _currentAircraft = aircraft; AttachedObject = condition; }