private void buttonDeleteSelected_Click(object sender, EventArgs e)
        {
            if ((detailListView.SelectedItems == null) && (detailListView.SelectedItem == null))
            {
                return;
            }
            DialogResult confirmResult =

                /*MessageBox.Show(
                 *  detailListView.SelectedItem != null
                 *      ? "Do you really want to delete component " + detailListView.SelectedItem.SerialNumber +
                 *        "?"
                 *      : "Do you really want to delete selected components? ", "Confirm delete operation",
                 *  MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);*/
                MessageBox.Show(
                    detailListView.SelectedItem != null
                        ? "Do you really want to delete component " + detailListView.SelectedItem.PartNumber +
                    "?"
                        : "Do you really want to delete selected components? ", "Confirm delete operation",
                    MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

            if (confirmResult == DialogResult.Yes)
            {
                ITemplateDetailContainer parent = detailListView.SelectedItems[0].Parent as ITemplateDetailContainer;
                if (parent != null)
                {
                    int count = detailListView.SelectedItems.Count;
                    detailListView.ItemsListView.BeginUpdate();
                    try
                    {
                        List <TemplateDetail> selectedItems = new List <TemplateDetail>(detailListView.SelectedItems);
                        for (int i = 0; i < count; i++)
                        {
                            parent.Remove(selectedItems[i]);
                            detailListView.DeleteItem(selectedItems[i]);
                        }
                    }
                    catch (Exception ex)
                    {
                        Program.Provider.Logger.Log("Error while deleting data", ex);
                        return;
                    }
                    SetItemsInformation();
                    detailListView.ItemsListView.EndUpdate();
                }
                else
                {
                    MessageBox.Show("Failed to delete component: Parent container is invalid", "Operation failed",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Exemple #2
0
 /// <summary>
 /// Создает элемент управления отображающий список шаблонных агрегатов по заданому масиву агрегатов
 /// </summary>
 /// <param name="detailSource">"Содержатель" агрегатов</param>
 /// <param name="filter">Фильтр</param>
 public TemplateDetailListView(ITemplateDetailContainer detailSource, TemplateDetailCollectionFilter filter)
 {
     this.detailSource                   = detailSource;
     this.filter                         = filter;
     selectedItemsList                   = new List <TemplateDetail>();
     ItemsListView.ColumnClick          += ItemsListView_ColumnClick;
     ItemsListView.MouseDoubleClick     += ItemsListView_MouseDoubleClick;
     ItemsListView.SelectedIndexChanged += ItemsListView_SelectedIndexChanged;
     ItemsListView.PreviewKeyDown       += ItemsListView_PreviewKeyDown;
     DisplayerRequested                 += ComponentStatusListView_DisplayerRequested;
     columnIndexQueue.Enqueue(0);
     oldColumnIndex = 1;
 }
Exemple #3
0
        protected bool AddNewDetail(bool changePageName)
        {
            string message = "";

            if (addnewcomponentControl.BaseDetailAddTo == null)
            {
                message += "Please choose base component";
            }
            if (generalInformationControl.PartNumber == "")
            {
                if (message == "")
                {
                    message += "Please fill Part Number";
                }
                else
                {
                    message += " and fill Part Number";
                }
            }
            if (generalInformationControl.ATAChapter == null)
            {
                GetMessage(ref message, "ATA Chapter");
            }
            if (generalInformationControl.MaintenanceType == null)
            {
                GetMessage(ref message, "Maintenance Type");
            }
            if (parametersControl.LandingGearMark && parametersControl.LandingGearMarkType == LandingGearMarkType.None)
            {
                GetMessage(ref message, "Landing Gears");
            }
            if (parametersControl.AvionicsInventoryMark && parametersControl.AvionicsInventoryMarkType == AvionicsInventoryMarkType.None)
            {
                GetMessage(ref message, "Avionics Inventory");
            }
            if (message != "")
            {
                MessageBox.Show(message, new TermsProvider()["SystemName"].ToString(), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(false);
            }
            else
            {
                generalInformationControl.SaveData(addedDetail, changePageName);
                limitationControl.SaveData(addedDetail);
                parametersControl.SaveData(addedDetail);
                parentDetail = addnewcomponentControl.BaseDetailAddTo;
                parentDetail.Add(addedDetail);
                return(true);
            }
        }
Exemple #4
0
 /// <summary>
 /// Создается отображение Component Ststus - списка шаблонных агрегатов для ВС
 /// </summary>
 /// <param name="currentBaseDetail"></param>
 /// <param name="initialFilter"></param>
 public DispatcheredTemplateDetailListScreen(TemplateBaseDetail currentBaseDetail, TemplateDetailCollectionFilter initialFilter) : base(currentBaseDetail, initialFilter)
 {
     detailContainer    = currentBaseDetail;
     this.initialFilter = initialFilter;
     Dock = DockStyle.Fill;
 }
Exemple #5
0
 /// <summary>
 /// Создается отображение Component Ststus - списка шаблонных агрегатов для ВС
 /// </summary>
 /// <param name="currentAircraft"></param>
 /// <param name="initialFilter"></param>
 /// <param name="additionalFilter"></param>
 public DispatcheredTemplateDetailListScreen(TemplateAircraft currentAircraft, TemplateDetailCollectionFilter initialFilter, TemplateDetailCollectionFilter additionalFilter) : base(currentAircraft, initialFilter, additionalFilter)
 {
     detailContainer    = currentAircraft;
     this.initialFilter = initialFilter;
     Dock = DockStyle.Fill;
 }
Exemple #6
0
        /// <summary>
        /// —оздает контрол дл¤ выбора базового агрегата дл¤ добавлени¤
        /// </summary>
        /// <param name="parentDetail"></param>
        public TemplateAddNewComponentControl(ITemplateDetailContainer parentDetail)
        {
            SuspendLayout();
            flowLayoutPanel1   = new FlowLayoutPanel();
            labelBaseComponent = new Label();
            //
            // labelBaseComponent
            //
            labelBaseComponent.ForeColor = Css.OrdinaryText.Colors.ForeColor;
            labelBaseComponent.Font      = Css.OrdinaryText.Fonts.RegularFont;
            labelBaseComponent.Location  = new Point(10, 20);
            labelBaseComponent.Name      = "labelBaseComponent";
            labelBaseComponent.Size      = new Size(150, 26);
            labelBaseComponent.TabIndex  = 0;
            labelBaseComponent.Text      = "Base component:";
            labelBaseComponent.TextAlign = ContentAlignment.MiddleLeft;
            //
            // flowLayoutPanel1
            //
            flowLayoutPanel1.Location      = new Point(labelBaseComponent.Right, labelBaseComponent.Top);
            flowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
            flowLayoutPanel1.Size          = new Size(900, 60);
            flowLayoutPanel1.TabIndex      = 0;
            //
            // AddNewComponentControl
            //
            BackColor           = Css.CommonAppearance.Colors.BackColor;
            AutoScaleDimensions = new SizeF(6F, 13F);
            AutoScaleMode       = AutoScaleMode.Font;
            Controls.Add(labelBaseComponent);
            Controls.Add(flowLayoutPanel1);
            Name = "AddNewComponentControl";
            Size = new Size(900, 140);
            ResumeLayout(false);
            PerformLayout();

            if (parentDetail != null)
            {
                TemplateAircraft parentAircraft = null;
                if (parentDetail is TemplateAircraft)
                {
                    parentAircraft = (TemplateAircraft)parentDetail;
                }
                if (parentDetail is TemplateBaseDetail)
                {
                    parentAircraft = ((TemplateBaseDetail)parentDetail).ParentAircraft;
                }
                if (parentAircraft != null)
                {
                    TemplateBaseDetail[] baseDetails = parentAircraft.BaseDetails;
                    radioButtonBaseDetail = new RadioButton[baseDetails.Length];
                    int length = baseDetails.Length;
                    for (int i = 0; i < length; i++)
                    {
                        TemplateBaseDetail current = baseDetails[i];
                        radioButtonBaseDetail[i]           = new RadioButton();
                        radioButtonBaseDetail[i].AutoSize  = true;
                        radioButtonBaseDetail[i].Cursor    = Cursors.Hand;
                        radioButtonBaseDetail[i].FlatStyle = FlatStyle.Flat;
                        radioButtonBaseDetail[i].Font      =
                            new Font(Css.OrdinaryText.Fonts.RegularFont, FontStyle.Underline);
                        radioButtonBaseDetail[i].ForeColor = Css.SimpleLink.Colors.LinkColor;
                        radioButtonBaseDetail[i].Location  = new Point(labelBaseComponent.Location.X + labelBaseComponent.Width + 25, i * 25);
                        radioButtonBaseDetail[i].Size      = new Size(73, 22);
                        radioButtonBaseDetail[i].TabIndex  = i;
                        radioButtonBaseDetail[i].TabStop   = true;
                        radioButtonBaseDetail[i].Tag       = baseDetails[i];
                        radioButtonBaseDetail[i].Text      = current.DetailType.FullName + " " + current.PartNumber;
                        radioButtonBaseDetail[i].UseVisualStyleBackColor = true;
                        radioButtonBaseDetail[i].CheckedChanged         += CheckedChangedByAnyCheckBox;
                        if (parentDetail == current)
                        {
                            radioButtonBaseDetail[i].Checked = true;
                        }
                        flowLayoutPanel1.Controls.Add(radioButtonBaseDetail[i]);
                    }
                }
                if (parentDetail is TemplateAircraft)
                {
                    radioButtonBaseDetail[0].Checked = true;
                }
            }
        }
Exemple #7
0
        ///<summary>
        /// Создается элемент отображения добавления шаблонного агрегата
        ///</summary>
        /// <param name="parentDetail">Базовый агрегат для которго добавляется шаблонный агрегат</param>
        public TemplateDetailAdding(ITemplateDetailContainer parentDetail) : this()
        {
            if (parentDetail == null)
            {
                throw new ArgumentNullException("parentDetail");
            }
            this.parentDetail = parentDetail;
            if (parentDetail is TemplateAircraft)
            {
                aircraftHeader.Aircraft = parentDetail as TemplateAircraft;
            }
            if (parentDetail is TemplateBaseDetail)
            {
                aircraftHeader.Aircraft = (parentDetail as TemplateBaseDetail).ParentAircraft;
            }
            aircraftHeader.AircraftClickable = true;
            aircraftHeader.OperatorClickable = true;

            addNewComponentContainer = new ExtendableRichContainer();
            addnewcomponentControl   = new TemplateAddNewComponentControl(parentDetail);
            //
            // addNewComponentContainer
            //
            addNewComponentContainer.labelCaption.Margin   = new Padding(3, 20, 3, 3);
            addNewComponentContainer.PictureBoxIcon.Margin = new Padding(3, 20, 3, 3);
            addNewComponentContainer.Dock          = DockStyle.Top;
            addNewComponentContainer.UpperLeftIcon = icons.GrayArrow;
            addNewComponentContainer.Caption       = "Base component";
            addNewComponentContainer.MainControl   = addnewcomponentControl;
            addNewComponentContainer.TabIndex      = 0;
            addnewcomponentControl.BaseDetailAddTo = parentDetail;
            //
            // generalInformationContainer
            //
            generalInformationContainer.TabIndex = 1;
            //
            // limitationsContainer
            //
            limitationsContainer.TabIndex = 2;
            //
            // parametersContainer
            //
            parametersContainer               = new ExtendableRichContainer();
            parametersContainer.Dock          = DockStyle.Top;
            parametersContainer.UpperLeftIcon = icons.GrayArrow;
            parametersContainer.Caption       = "Parameters";
            parametersContainer.MainControl   = parametersControl;
            parametersContainer.Extended      = false;
            parametersContainer.TabIndex      = 3;


            mainPanel.Controls.Add(panelFooterMenu);
            mainPanel.Controls.Add(parametersContainer);
            mainPanel.Controls.Add(limitationsContainer);
            mainPanel.Controls.Add(generalInformationContainer);
            mainPanel.Controls.Add(addNewComponentContainer);

            ClearFields();

            addNewComponentContainer.Focus();
        }
 ///<summary>
 /// Создается элемент отображения добавления шаблонного агрегата
 ///</summary>
 /// <param name="parentDetail">Базовый агрегат для которго добавляется шаблонный агрегат</param>
 public DispatcheredTemplateDetailAdding(ITemplateDetailContainer parentDetail) : base(parentDetail)
 {
 }