/// <summary> /// Обновляет отображаемую информацию /// </summary> /// <param name="sourceDetail">Агрегат по которому отображается информация</param> public void UpdateInformation(TemplateAbstractDetail sourceDetail) { if (sourceDetail == null) { throw new ArgumentNullException("sourceDetail"); } /* SinceNewLimitation = sourceDetail.Limitation.MaxResourceSinceNew; * SinceLastShopVisitLimitation = sourceDetail.Limitation.MaxResourceSinceShopVisit; * SinceLastInspectionLimitation = sourceDetail.Limitation.MaxResourceSinceInspection; * SinceLastOverhaulLimitation = sourceDetail.Limitation.MaxResourceSinceOverhaul; * SinceLastHotInspectionLimitation = sourceDetail.Limitation.MaxResourceSinceHotSectionInspection; * * SinceNewNotification = sourceDetail.Limitation.NotificationSinceNew; * SinceLastShopVisitNotification = sourceDetail.Limitation.NotificationSinceShopVisit; * SinceLastInspectionNotification = sourceDetail.Limitation.NotificationSinceInspection; * SinceLastOverhaulNotification = sourceDetail.Limitation.NotificationSinceOverhaul; * SinceLastHostInspectionNotification = sourceDetail.Limitation.NotificationSinceHotSectionInspection; */ bool permission = (currentDetail.HasPermission(Users.CurrentUser, DataEvent.Update)); maxResourcesInfo.ReadOnly = !permission; notifyWhenRemainsInfo.ReadOnly = !permission; labelRemark.Visible = permission; }
/// <summary> /// Создает элемент управления для отображения ограничений заданного агрегата /// </summary> /// <param name="detail">Текущий шаблонный агрегат</param> public TemplateDatailLimitationsMaxResourcesControl(TemplateAbstractDetail detail) : this() { if (detail == null) { throw new ArgumentNullException("detail", "Argument cannot be null"); } CurrentDetail = detail; }
///<summary> /// Создается элемент отображения шаблонного агрегата ///</summary> /// <param name="detail">Деталь для отображения</param> public DispatcheredTemplateDetailScreen(TemplateAbstractDetail detail) : base(detail) { if (detail == null) { throw new ArgumentNullException("detail"); } this.detail = detail; }
/// <summary> /// Создает экземпляр отображатора информации о шаблонном агрегате /// </summary> /// <param name="currentDetail"></param> public TemplateDetailGeneralInformationControl(TemplateAbstractDetail currentDetail) { if (null == currentDetail) { throw new ArgumentNullException("currentDetail", "Argument cannot be null"); } this.currentDetail = currentDetail; InitializeComponent(); }
/// <summary> /// Возвращает значение, показывающее были ли изменения в данном элементе управления /// </summary> /// <returns></returns> public bool GetChangeStatus(TemplateAbstractDetail detail) { if (detail is TemplateDetail) { TemplateDetail det = (TemplateDetail)detail; return((LLPMark != det.IncludedIntoLLP) || (AvionicsInventoryMarkType != det.AvionicsInventoryMark) || (ALTPN != det.AltPN) || (MTOGW != det.MTOGW)); } return(false); }
/// <summary> /// Заполняет поля для редактирования шаблонного агрегата /// </summary> public void UpdateInformation(TemplateAbstractDetail detail) { if (detail == null) { throw new ArgumentNullException("detail"); } PartNumber = detail.PartNumber; if (detail is TemplateDetail) { TemplateDetail dt = (TemplateDetail)detail; ATAChapter = dt.AtaChapter; } Description = detail.Description; MaintenanceType = detail.MaintenanceType; Model = detail.Model; Manufacturer = detail.Manufacturer; Amount = detail.Amount.ToString(); Remarks = detail.Remarks; HoursApplicable = detail.Lifelength.IsHoursApplicable; CyclesApplicable = detail.Lifelength.IsCyclesApplicable; CalendarApplicable = detail.Lifelength.IsCalendarApplicable; bool permission = (detail.HasPermission(Users.CurrentUser, DataEvent.Update)); textBoxPartNo.ReadOnly = !permission; if ((currentDetail is TemplateDetail) && permission) { comboBoxAtaChapter.Enabled = true; } else { comboBoxAtaChapter.Enabled = false; } textBoxDescription.ReadOnly = !permission; if (detail is TemplateGearAssembly) { LandingGearMark = ((TemplateGearAssembly)detail).LandingGearMark; } textBoxModel.ReadOnly = !permission; textBoxManufacturer.ReadOnly = !permission; radioButtonConditionMonitoring.Enabled = permission; radioButtonHardTime.Enabled = permission; radioButtonOnCondition.Enabled = permission; radioButtonUnknown.Enabled = permission; textBoxAmount.ReadOnly = !permission; textBoxRemarks.ReadOnly = !permission; checkBoxCalendarApplicable.Enabled = permission; checkBoxCyclesApplicable.Enabled = permission; checkBoxHoursApplicable.Enabled = permission; }
/// <summary> /// Задаются данные агрегату /// </summary> /// <param name="destinationDetail">Агрегат у которого задаются данные</param> public void SaveData(TemplateAbstractDetail destinationDetail) { if (destinationDetail == null) { throw new ArgumentNullException("destinationDetail"); } /*destinationDetail.Limitation.MaxResourceSinceNew = SinceNewLimitation; * destinationDetail.Limitation.MaxResourceSinceShopVisit = SinceLastShopVisitLimitation; * destinationDetail.Limitation.MaxResourceSinceInspection = SinceLastInspectionLimitation; * destinationDetail.Limitation.MaxResourceSinceOverhaul = SinceLastOverhaulLimitation; * destinationDetail.Limitation.MaxResourceSinceHotSectionInspection = SinceLastHotInspectionLimitation; * * destinationDetail.Limitation.NotificationSinceNew = SinceNewNotification; * destinationDetail.Limitation.NotificationSinceShopVisit = SinceLastShopVisitNotification; * destinationDetail.Limitation.NotificationSinceInspection = SinceLastInspectionNotification; * destinationDetail.Limitation.NotificationSinceOverhaul = SinceLastOverhaulNotification; * destinationDetail.Limitation.NotificationSinceHotSectionInspection = SinceLastHostInspectionNotification;*/ }
/// <summary> /// Задаются данные агрегату /// </summary> /// <param name="destinationDetail">Агрегат у которого задаются данные</param> public void SaveData(TemplateAbstractDetail destinationDetail) { if (destinationDetail == null) { throw new ArgumentNullException("destinationDetail"); } maxResourcesInfo.LifeLengthViewers[0].SaveData(destinationDetail.Limitation.MaxResourceSinceNew); maxResourcesInfo.LifeLengthViewers[1].SaveData(destinationDetail.Limitation.MaxResourceSinceOverhaul); maxResourcesInfo.LifeLengthViewers[2].SaveData(destinationDetail.Limitation.MaxResourceSinceInspection); maxResourcesInfo.LifeLengthViewers[3].SaveData(destinationDetail.Limitation.MaxResourceSinceShopVisit); maxResourcesInfo.LifeLengthViewers[4].SaveData(destinationDetail.Limitation.MaxResourceSinceHotSectionInspection); notifyWhenRemainsInfo.LifeLengthViewers[0].SaveData(destinationDetail.Limitation.NotificationSinceNew); notifyWhenRemainsInfo.LifeLengthViewers[1].SaveData(destinationDetail.Limitation.NotificationSinceOverhaul); notifyWhenRemainsInfo.LifeLengthViewers[2].SaveData(destinationDetail.Limitation.NotificationSinceInspection); notifyWhenRemainsInfo.LifeLengthViewers[3].SaveData(destinationDetail.Limitation.NotificationSinceShopVisit); notifyWhenRemainsInfo.LifeLengthViewers[4].SaveData(destinationDetail.Limitation.NotificationSinceHotSectionInspection); }
/// <summary> /// Сохраняются данные заданного шаблонного агрегата /// </summary> /// <param name="abstractDetail">Шаблонный агрегат у которого сохраняются данные</param> public void SaveData(TemplateAbstractDetail abstractDetail) { if (abstractDetail == null) { throw new ArgumentNullException("abstractDetail"); } if (abstractDetail is TemplateDetail) { TemplateDetail detail = (TemplateDetail)abstractDetail; detail.IncludedIntoLLP = LLPMark; detail.AvionicsInventoryMark = AvionicsInventoryMarkType; detail.AltPN = ALTPN; detail.MTOGW = MTOGW; } if (abstractDetail is TemplateEngine) { abstractDetail.HushKit_ = HusKit; } }
/// <summary> /// Возвращает значение, показывающее были ли изменения в данном элементе управления /// </summary> /// <returns></returns> public bool GetChangeStatus(TemplateAbstractDetail detail) { if (detail is TemplateDetail) { TemplateDetail det = (TemplateDetail)detail; if (ATAChapter != det.AtaChapter) { return(true); } } return((PartNumber != detail.PartNumber) || (Description != detail.Description) || (detail is TemplateGearAssembly ? LandingGearMark != ((TemplateGearAssembly)detail).LandingGearMark : false) || (MaintenanceType != detail.MaintenanceType) || (Model != detail.Model) || (Manufacturer != detail.Manufacturer) || (Amount != detail.Amount.ToString()) || (Remarks != detail.Remarks) || (HoursApplicable != detail.Lifelength.IsHoursApplicable) || (CyclesApplicable != detail.Lifelength.IsCyclesApplicable) || (CalendarApplicable != detail.Lifelength.IsCalendarApplicable)); }
/// <summary> /// Возвращает значение, показывающее были ли изменения в данном элементе управления /// </summary> /// <returns></returns> public bool GetChangeStatus(TemplateAbstractDetail detail) { //return (detail.Limitation.Modified); throw new NotImplementedException("Methods is not implemented"); }
/// <summary> /// Обновляет отображаемую информацию /// </summary> /// <param name="abstractDetail">Шаблонный агрегат по которому отображается информация</param> public void UpdateInformation(TemplateAbstractDetail abstractDetail) { if (abstractDetail == null) { throw new ArgumentNullException("abstractDetail"); } bool permission = abstractDetail.HasPermission(Users.CurrentUser, DataEvent.Update); if (abstractDetail is TemplateDetail) { checkBoxLLP.Visible = true; labelLLPRemark.Visible = true; LandingGearVisible = true; checkBoxIncludeToLandingGearReport.Visible = true; AvionicsInventoryVisible = true; textBoxALTPN.Visible = true; labelALTPN.Visible = true; textBoxHushKit.Visible = false; labelHushKit.Visible = false; checkBoxLLP.Enabled = permission; checkBoxLandingGear.Enabled = permission; checkBoxIncludeToLandingGearReport.Enabled = permission; checkBoxAvionicsInventory.Enabled = permission; textBoxALTPN.Enabled = permission; TemplateDetail detail = (TemplateDetail)abstractDetail; LLPMark = detail.IncludedIntoLLP; MTOGW = detail.MTOGW; LandingGearEnabled = permission; AvionicsInventoryMarkType = detail.AvionicsInventoryMark; AvionicsInventoryEnabled = permission; ALTPN = detail.AltPN; } else { checkBoxLLP.Visible = false; labelLLPRemark.Visible = false; LandingGearVisible = false; labelLandingGearsRemark.Visible = false; labelMTOGW.Visible = false; checkBoxIncludeToLandingGearReport.Visible = false; AvionicsInventoryVisible = false; labelAvionicsInventoryRemark.Visible = false; textBoxALTPN.Visible = false; labelALTPN.Visible = false; if (abstractDetail is TemplateEngine) { labelHushKit.Location = new Point(MARGIN, MARGIN); textBoxHushKit.Location = new Point(labelHushKit.Right, MARGIN); textBoxHushKit.Visible = true; textBoxHushKit.Enabled = permission; labelHushKit.Visible = true; HusKit = abstractDetail.HushKit_; } else { textBoxHushKit.Visible = false; labelHushKit.Visible = false; } } }
/// <summary> /// Создает элемент управления для отображения параметров шаблонного агрегата /// </summary> /// <param name="detail">Текущий агрегат</param> public TemplateDetailParametersControl(TemplateAbstractDetail detail) : this() { currentDetail = detail; UpdateInformation(); }
/// <summary> /// Возвращает значение, показывающее были ли изменения в данном элементе управления /// </summary> /// <returns></returns> public bool GetChangeStatus(TemplateAbstractDetail detail) { return(maxResourcesInfo.Modified || notifyWhenRemainsInfo.Modified); }
/// <summary> /// —оздает элемент управлени¤ дл¤ отображени¤ отдельного агрегата /// </summary> /// <param name="detail"></param> public TemplateDetailScreen(TemplateAbstractDetail detail) { if (detail == null) { throw new ArgumentNullException("detail", "Argument cannot be null"); } currentDetail = detail; BackColor = Css.CommonAppearance.Colors.BackColor; Dock = DockStyle.Fill; footerControl = new FooterControl(); headerControl = new HeaderControl(); if (currentDetail is TemplateDetail) { aircraftHeader = new TemplateAircraftHeaderControl(currentDetail.Parent.Parent as TemplateAircraft, true); } else { aircraftHeader = new TemplateAircraftHeaderControl(((TemplateBaseDetail)currentDetail).ParentAircraft, true); } generalInformationControl = new TemplateDetailGeneralInformationControl(currentDetail); limitationControl = new TemplateDatailLimitationsMaxResourcesControl(currentDetail); parametersControl = new TemplateDetailParametersControl(currentDetail); generalInformationContainer = new ExtendableRichContainer(); limitationsContainer = new ExtendableRichContainer(); parametersContainer = new ExtendableRichContainer(); buttonDeleteDetail = new RichReferenceButton(); buttonAddTemplate = new AvButtonT(); // // aircraftHeader // aircraftHeader.AircraftClickable = true; // // headerControl // headerControl.Controls.Add(aircraftHeader); headerControl.ButtonEdit.TextMain = "Save"; headerControl.ButtonEdit.Icon = icons.Save; headerControl.ButtonEdit.IconNotEnabled = icons.SaveGray; headerControl.TabIndex = 0; headerControl.ButtonEdit.DisplayerRequested += ButtonSave_DisplayerRequested; headerControl.ReloadRised += headerControl_ReloadRised; // // generalInformationContainer // generalInformationContainer.Dock = DockStyle.Top; generalInformationContainer.UpperLeftIcon = icons.GrayArrow; generalInformationContainer.Caption = "Component General Information"; generalInformationContainer.MainControl = generalInformationControl; generalInformationContainer.TabIndex = 1; // // limitationsContainer // limitationsContainer.Dock = DockStyle.Top; limitationsContainer.UpperLeftIcon = icons.GrayArrow; limitationsContainer.Caption = "Limitations. Max resources"; limitationsContainer.MainControl = limitationControl; limitationsContainer.TabIndex = 2; // // parametersContainer // parametersContainer.Dock = DockStyle.Top; parametersContainer.UpperLeftIcon = icons.GrayArrow; parametersContainer.Caption = "Parameters"; parametersContainer.MainControl = parametersControl; parametersContainer.TabIndex = 3; // // panelHeader // panelHeader.AutoSize = true; panelHeader.AutoSizeMode = AutoSizeMode.GrowAndShrink; panelHeader.Dock = DockStyle.Top; panelHeader.TabIndex = 0; panelHeader.Controls.Add(buttonDeleteDetail); // // buttonDeleteDetail // buttonDeleteDetail.Anchor = AnchorStyles.Right | AnchorStyles.Top; buttonDeleteDetail.BackColor = Color.Transparent; buttonDeleteDetail.FontMain = Css.HeaderControl.Fonts.PrimaryFont; buttonDeleteDetail.FontSecondary = Css.HeaderControl.Fonts.PrimaryFont; buttonDeleteDetail.ForeColorMain = Css.HeaderControl.Colors.PrimaryColor; buttonDeleteDetail.ForeColorSecondary = Css.HeaderControl.Colors.PrimaryColor; buttonDeleteDetail.Location = new Point(panelHeader.Right - 160, 0); buttonDeleteDetail.Icon = icons.Delete; buttonDeleteDetail.IconNotEnabled = icons.DeleteGray; buttonDeleteDetail.IconLayout = ImageLayout.Center; buttonDeleteDetail.Name = "buttonDeleteDetail"; buttonDeleteDetail.NormalBackgroundImage = null; buttonDeleteDetail.PaddingMain = new Padding(3, 0, 0, 0); buttonDeleteDetail.ReflectionType = ReflectionTypes.CloseSelected; buttonDeleteDetail.Size = new Size(160, 50); buttonDeleteDetail.TabIndex = 16; buttonDeleteDetail.TextAlignMain = ContentAlignment.MiddleLeft; buttonDeleteDetail.TextAlignSecondary = ContentAlignment.TopLeft; buttonDeleteDetail.TextMain = "Delete"; buttonDeleteDetail.TextSecondary = "component"; buttonDeleteDetail.DisplayerRequested += avButtonDeleteDetail_DisplayerRequested; // // buttonAddTemplate // buttonAddTemplate.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; buttonAddTemplate.FontMain = Css.HeaderControl.Fonts.PrimaryFont; buttonAddTemplate.ForeColorMain = Css.HeaderControl.Colors.PrimaryColor; buttonAddTemplate.Icon = icons.Add; buttonAddTemplate.IconNotEnabled = icons.AddGray; buttonAddTemplate.Width = 160; buttonAddTemplate.Location = new Point(mainPanel.Right - buttonAddTemplate.Width - 10, mainPanel.Bottom - buttonAddTemplate.Height - 10); buttonAddTemplate.TextMain = "Add To Database"; buttonAddTemplate.Click += buttonAddTemplate_Click; buttonAddTemplate.TabIndex = 4; buttonAddTemplate.Visible = false; // // mainPanel // mainPanel.Dock = DockStyle.Fill; mainPanel.AutoScroll = true; mainPanel.TabIndex = 1; mainPanel.Controls.Add(buttonAddTemplate); if ((currentDetail is TemplateDetail) || (currentDetail is TemplateEngine)) { mainPanel.Controls.Add(parametersContainer); } mainPanel.Controls.Add(limitationsContainer); mainPanel.Controls.Add(generalInformationContainer); mainPanel.Controls.Add(panelHeader); Controls.Add(mainPanel); Controls.Add(footerControl); Controls.Add(headerControl); UpdateDetail(false); }
/// <summary> /// Сохранаяет данные заданного шаблонного агрегата /// </summary> /// <param name="detail">Агрегат</param> /// <param name="changePageName">Менять ли название вкладки</param> public void SaveData(TemplateAbstractDetail detail, bool changePageName) { if (detail == null) { throw new ArgumentNullException("detail"); } int amount; CheckAmount(out amount); if (textBoxPartNo.Text != detail.PartNumber) { detail.PartNumber = textBoxPartNo.Text; if (changePageName) { string caption; if (detail is TemplateBaseDetail) { caption = ((TemplateBaseDetail)detail).ParentAircraft.Model + ". Component PN " + detail.PartNumber; } else { if (detail.Parent != null) { caption = ((TemplateAircraft)detail.Parent.Parent).Model + ". Component PN " + detail.PartNumber; } else { caption = "Component PN " + detail.PartNumber; } } if (DisplayerRequested != null) { DisplayerRequested(this, new ReferenceEventArgs(null, ReflectionTypes.ChangeTextOfContainingDisplayer, caption)); } } } if (detail is TemplateDetail) { TemplateDetail det = (TemplateDetail)detail; det.AtaChapter = ATAChapter; } if (textBoxDescription.Text != detail.Description) { detail.Description = textBoxDescription.Text; } if (detail is TemplateGearAssembly) { TemplateGearAssembly gearAssembly = (TemplateGearAssembly)detail; if (gearAssembly.LandingGearMark != LandingGearMark) { gearAssembly.LandingGearMark = LandingGearMark; } } if (textBoxModel.Text != detail.Model) { detail.Model = textBoxModel.Text; } if (textBoxManufacturer.Text != detail.Manufacturer) { detail.Manufacturer = textBoxManufacturer.Text; } if (MaintenanceType != detail.MaintenanceType) { detail.MaintenanceType = MaintenanceType; } if (textBoxAmount.Text != detail.Amount.ToString()) { detail.Amount = amount; } if (textBoxRemarks.Text != detail.Remarks) { detail.Remarks = textBoxRemarks.Text; } if (checkBoxHoursApplicable.Checked != detail.Lifelength.IsHoursApplicable) { detail.Lifelength.IsHoursApplicable = checkBoxHoursApplicable.Checked; } if (checkBoxCyclesApplicable.Checked != detail.Lifelength.IsCyclesApplicable) { detail.Lifelength.IsCyclesApplicable = checkBoxCyclesApplicable.Checked; } if (checkBoxCalendarApplicable.Checked != detail.Lifelength.IsCalendarApplicable) { detail.Lifelength.IsCalendarApplicable = checkBoxCalendarApplicable.Checked; } }