Пример #1
0
        private void LinkLabelAddNewLinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            panelMain.Controls.Remove(panelAdd);
            // Добавляем контрол - неисправность
            FlightSmsEventControl d = new FlightSmsEventControl(new Event {
                Parent = Flight, AircraftId = Flight.AircraftId
            })
            {
                EventDate             = _eventDate,
                Extended              = true,
                EnableExtendedControl = false
            };

            d.Deleted += ConditionControlDeleted;

            panelMain.Controls.Add(d);
            panelMain.Controls.Add(panelAdd);
        }
Пример #2
0
        /*
         * Реализация
         */

        #region private void BuildControls()
        /// <summary>
        /// Строит нужные контролы
        /// </summary>
        private void BuildControls()
        {
            #region Освобождение панелей от контролов

            foreach (Control control in panelMain.Controls)
            {
                if (control is FlightSmsEventControl)
                {
                    ((FlightSmsEventControl)control).Deleted -= ConditionControlDeleted;
                    control.Dispose();
                }
                else if (control != panelAdd)
                {
                    control.Dispose();
                }
            }
            panelMain.Controls.Clear();

            #endregion

            #region Добавление контролов

            IRecordCollection <Event> events = Flight != null
                                                ? Flight.Events
                                                : new BaseRecordCollection <Event>();
            for (int i = 0; i < events.Count; i++)
            {
                // Добавляем контрол - неисправность
                FlightSmsEventControl d = new FlightSmsEventControl
                {
                    EnableExtendedControl = events.Count >= 2,
                    Extended = i <= 1
                };
                d.Deleted += ConditionControlDeleted;
                if (Flight != null && i < events.Count)
                {
                    d.Event = events[i];
                }
                panelMain.Controls.Add(d);
            }
            panelMain.Controls.Add(panelAdd);

            #endregion
        }
Пример #3
0
        /*
         * Перегружаемые методы
         */

        #region public override void ApplyChanges()
        /// <summary>
        /// Применить к объекту сделанные изменения на контроле.
        /// Если не все данные удовлетворяют формату ввода (например при вводе чисел), свойства объекта не изменяются, возвращается false
        /// Вызов base.ApplyChanges() обязателен
        /// </summary>
        /// <returns></returns>
        public override void ApplyChanges()
        {
            // Применяем сделанные изменения объектам
            for (int i = 0; i < panelMain.Controls.Count; i++)
            {
                FlightSmsEventControl d = panelMain.Controls[i] as FlightSmsEventControl;
                if (d != null && d.Event != null)
                {
                    d.ApplyChanges();
                    if (d.Event.ItemId <= 0)
                    {
                        //Новый Discrepancy, добавляем его в AircraftFlight
                        Flight.Events.Add(d.Event);
                    }
                }
            }
            //
            base.ApplyChanges();
        }
Пример #4
0
        private void ConditionControlDeleted(object sender, EventArgs e)
        {
            FlightSmsEventControl control = (FlightSmsEventControl)sender;
            Event cond = control.Event;

            if (cond.ItemId > 0 && MessageBox.Show("Do you really want to delete Event?", "Deleting confirmation", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
            {
                //если информация о состоянии сохранена в БД
                //и получен положительный ответ на ее удаление
                try
                {
                    GlobalObjects.NewKeeper.Delete(cond);
                    Flight.Events.Remove(cond);
                }
                catch (Exception ex)
                {
                    Program.Provider.Logger.Log("Error while removing data", ex);
                }

                if (panelMain.Controls.Contains(control))
                {
                    panelMain.Controls.Remove(control);
                }
                control.Deleted -= ConditionControlDeleted;
                control.Dispose();
            }
            else if (cond.ItemId <= 0)
            {
                if (panelMain.Controls.Contains(control))
                {
                    panelMain.Controls.Remove(control);
                }
                control.Deleted -= ConditionControlDeleted;
                control.Dispose();
            }
        }