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); } } }
/// <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; }
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); } }
/// <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; }
/// <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; }
/// <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; } } }
///<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) { }