Exemple #1
0
        /*
         * Реализация
         */

        #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);
            }
        }
Exemple #2
0
        /*
         * Перегружаемые методы
         */

        #region public override void ApplyChanges()
        /// <summary>
        /// Применить к объекту сделанные изменения на контроле.
        /// Если не все данные удовлетворяют формату ввода (например при вводе чисел), свойства объекта не изменяются, возвращается false
        /// Вызов base.ApplyChanges() обязателен
        /// </summary>
        /// <returns></returns>
        public override void ApplyChanges()
        {
            // Применяем сделанные изменения объектам
            for (int i = 0; i < flowLayoutPanelMain.Controls.Count; i++)
            {
                ComponentOilControl c = flowLayoutPanelMain.Controls[i] as ComponentOilControl;
                if (c == null)
                {
                    continue;
                }
                c.ApplyChanges();
                if (Flight != null && Flight.OilConditionCollection != null && !ConditionExists(c.OilCondition))
                {
                    Flight.OilConditionCollection.Add(c.OilCondition);
                }
            }


            /*
             * Все изменения сохранены в коллекции
             *
             * Здесь необходимо сохранить внесенные данные
             * Коллекция является StringConvertibleCollection и не имеет отдельной таблицы в базе данных,
             * а хранится в качестве поля таблицы AircraftFlights
             */

            //
            base.ApplyChanges();
        }
Exemple #3
0
        private void ItemFlowChanget(object sender, EventArgs e)
        {
            ComponentOilControl coc = sender as ComponentOilControl;

            if (coc == null)
            {
                return;
            }
            InvokeOilFlowChanget(coc.PowerUnit, coc.Flow);
        }
Exemple #4
0
        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();
        }
Exemple #5
0
        /// <summary>
        /// Проверяет введенные данные.
        /// Если какое-либо поле не подходит по формату, следует сразу кидать MessageBox, ставить курсор в необходимое поле и возвращать false в качестве результата метода
        /// </summary>
        /// <returns></returns>
        public override bool CheckData()
        {
            // Проверяем введенные данные
            for (int i = 0; i < flowLayoutPanelMain.Controls.Count; i++)
            {
                ComponentOilControl c = flowLayoutPanelMain.Controls[i] as ComponentOilControl;
                if (c != null)
                {
                    if (!c.CheckData())
                    {
                        return(false);
                    }
                }
            }

            // Все данные введены корректно
            return(true);
        }
Exemple #6
0
        /*
         * Реализация
         */

        #region private void BuildControls()
        /// <summary>
        /// Строит нужные контролы
        /// </summary>
        private void BuildControls()
        {
            // Освобождаем старые контролы
            flowLayoutPanelMain.Controls.Clear();

            if (Flight != null && Flight.OilConditionCollection != null)
            {
                var aircraft = GlobalObjects.AircraftsCore.GetAircraftById(Flight.AircraftId);
                for (int i = 0; i < Flight.OilConditionCollection.Count; i++)
                {
                    // Добавляем контрол для ввода данных по маслу
                    ComponentOilControl c = new ComponentOilControl(aircraft, Flight.OilConditionCollection[i]);
                    c.Deleted             += OilConditionControlDeleted;
                    c.AfterRemainChanget  += ItemAfterRemainChanget;
                    c.RefuelChanget       += ItemRefuelChanget;
                    c.OnBoardChanget      += ItemOnBoardChanget;
                    c.SpentChanget        += ItemSpentChanget;
                    c.BeforeRemainChanget += ItemBeforeRemainChanget;
                    c.ComponentChanget    += ItemComponentChanget;
                    c.OilFlowChanget      += ItemFlowChanget;
                    if (i > 0)
                    {
                        c.ShowHeaders = false;
                    }
                    flowLayoutPanelMain.Controls.Add(c);
                    SetOilFlow(c.PowerUnit);
                }

                GetTotalBefore();
                GetTotalRefuel();
                GetTotalOnBoard();
                GetTotalSpent();
                GetTotalAfter();
            }

            flowLayoutPanelMain.Controls.Add(panelAdd);
        }
Exemple #7
0
        private void LinkLabelAddNewLinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var aircraft = GlobalObjects.AircraftsCore.GetAircraftById(Flight.AircraftId);
            ComponentOilControl performance =
                new ComponentOilControl(aircraft, new ComponentOilCondition());

            performance.Deleted             += OilConditionControlDeleted;
            performance.AfterRemainChanget  += ItemAfterRemainChanget;
            performance.RefuelChanget       += ItemRefuelChanget;
            performance.OnBoardChanget      += ItemOnBoardChanget;
            performance.SpentChanget        += ItemSpentChanget;
            performance.BeforeRemainChanget += ItemBeforeRemainChanget;
            performance.ComponentChanget    += ItemComponentChanget;
            performance.OilFlowChanget      += ItemFlowChanget;
            if (flowLayoutPanelMain.Controls.Count > 1)
            {
                performance.ShowHeaders = false;
            }
            flowLayoutPanelMain.Controls.Remove(panelAdd);
            flowLayoutPanelMain.Controls.Add(performance);
            flowLayoutPanelMain.Controls.Add(panelAdd);

            SetOilFlow(performance.PowerUnit);
        }