///<summary> /// Создается фильтр коллекции шаблонных агрегатов ///</summary> ///<returns>Созданная коллекция шаблонных агрегатов</returns> public TemplateDetailCollectionFilter GetDetailCollectionFilter() { TemplateDetailCollectionFilter detailCollectionFilter = new TemplateDetailCollectionFilter(new TemplateDetailFilter[] {}); List <TemplateDetailFilter> filters = new List <TemplateDetailFilter>(); if (MaintenanceFilterAppliance) { if (MaintenanceTypeCheckBoxesEnabled) { filters.Add( new TemplateMaintananceFilter(OnConditionChecked, UnknownChecked, ConditionMonitroringChecked, HardTimeChecked)); } } if (ATAChapterFilterAppliance) { filters.Add(GetATAChapterFillter()); } if (PartNumberFilterAppliance) { filters.Add(new TemplatePartNumberFilter(textBoxPartMask.Text)); } if (filters.Count > 0) { detailCollectionFilter.IsNonReportFilterApply = true; } //AddSpecialReportFilters(filters); AddComponentFilters(filters); detailCollectionFilter.Filters = filters.ToArray(); return(detailCollectionFilter); }
/// <summary> /// Собирает все агрегаты /// </summary> /// <returns></returns> public TemplateDetail[] GatherDetails() { List <TemplateDetailFilter> appliedFilters = new List <TemplateDetailFilter>(filter.Filters); if (additionalFilter != null) { appliedFilters.AddRange(additionalFilter.Filters); } TemplateDetailCollectionFilter generalFilter = new TemplateDetailCollectionFilter(detailSource.ContainedDetails, appliedFilters.ToArray()); return(generalFilter.GatherDetails()); }
/// <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; }
///<summary> /// Создает элемент управления для отображения списка шаблонных агрегатов ///</summary> ///<param name="currentBaseDetail">Базовый агрегат, содержащий агрегаты</param> ///<param name="viewFilter">Фильтр отображения</param> public TemplateDetailListScreen(TemplateBaseDetail currentBaseDetail, TemplateDetailCollectionFilter viewFilter) { ((DispatcheredTemplateDetailListScreen)this).InitComplition += ComponentStatusControl_InitComplition; if (currentBaseDetail == null) { throw new ArgumentNullException("currentBaseDetail", "Cannot display null-baseDetail"); } this.currentBaseDetail = currentBaseDetail; PerformEvents(true); filterSelection = new TemplateDetailFilterSelection(currentBaseDetail.ParentAircraft); initialFilter = viewFilter; InitializeComponent(); UpdateElements(); }
/// <summary> /// Задаются параеметры фильтрации /// </summary> /// <param name="filter"></param> public void SetFilterParameters(TemplateDetailCollectionFilter filter) { for (int i = 0; i < filter.Filters.Length; i++) { TemplateDetailFilter detailFilter = filter.Filters[i]; if (detailFilter is TemplatePartNumberFilter) { PartNumberFilterAppliance = true; textBoxPartMask.Text = ((TemplatePartNumberFilter)detailFilter).Mask; } if (detailFilter is TemplateATAChapterFilter) { SelectCheckListBoxATAChapterByFilter(((TemplateATAChapterFilter)detailFilter).TypeAppliance); } if (detailFilter is TemplateMaintananceFilter) { TemplateMaintananceFilter maintananceFilter = (TemplateMaintananceFilter)detailFilter; OnConditionChecked = maintananceFilter.OnConditionAcceptance; HardTimeChecked = maintananceFilter.HardTimeAcceptance; ConditionMonitroringChecked = maintananceFilter.ConditionMonitoringAcceptance; UnknownChecked = maintananceFilter.UnknownAcceptance; } if (detailFilter is BaseDetailFilter) { comboBoxComponent.SelectedItem = ((TemplateBaseDetailFilter)detailFilter).CurentBaseDetail.ToString(); } /*if (detailFilter is HardTimeStatusFilter) * comboReportType.SelectedItem = hardTimeStatus; * if (detailFilter is OnConditionStatusFilter) * comboReportType.SelectedItem = onConditionStatus; * if (detailFilter is ConditionMonitoringStatusFilter) * comboReportType.SelectedItem = cmStatus; * if (detailFilter is LLPFilter) * comboReportType.SelectedItem = LLPStatus; * if (detailFilter is AvionicsInventoryFilter) * comboReportType.SelectedItem = avionicsInventory; * if (detailFilter is LandingGearsFilter) * comboReportType.SelectedItem = landingGearStatus; * if (detailFilter is TemplateEngineLLPFilter) * { * comboReportType.SelectedItem = GetEngineLLPString(((TemplateEngineLLPFilter)detailFilter).CurentBaseDetail); * }*/ } }
///<summary> /// Создает элемент управления для отображения списка шаблонных агрегатов ///</summary> ///<param name="currentAircraft">Шаблонное ВС, содержащее агрегаты</param> ///<param name="initialFilter">Фильтр отображения</param> /// <param name="additionalFilter">Дополнительный фильтр</param> public TemplateDetailListScreen(TemplateAircraft currentAircraft, TemplateDetailCollectionFilter initialFilter, TemplateDetailCollectionFilter additionalFilter) { ((DispatcheredTemplateDetailListScreen)this).InitComplition += ComponentStatusControl_InitComplition; if (currentAircraft == null) { throw new ArgumentNullException("currentAircraft"); } this.currentAircraft = currentAircraft; PerformEvents(true); this.initialFilter = initialFilter; if (additionalFilter != null) { this.additionalFilter = additionalFilter; } filterSelection = new TemplateDetailFilterSelection(currentAircraft); InitializeComponent(); UpdateElements(); }
/// <summary> /// ћетод, обрабатывающий событие нажати¤ ссылки LLP Disk Sheet Status /// </summary> /// <param name="e"></param> public void OnLLPDiskSheetStatusLinkDisplayRequested(ReferenceEventArgs e) { /* * e.TypeOfReflection = ReflectionTypes.DisplayInNew; * e.DisplayerText = currentBaseDetail.ParentAircraft.RegistrationNumber + ". " + currentBaseDetail + ". LLP Disk Sheet Status"; * DetailCollectionFilter filter = new DetailCollectionFilter(new DetailFilter[] { new EngineLLPFilter(currentBaseDetail) }); * LLPStatusReportBuilder reportBuilder = new LLPStatusReportBuilder((Engine)currentBaseDetail); * * DispatcheredComponentStatusScreen dispatcheredComponentStatusScreen = new DispatcheredComponentStatusScreen(currentBaseDetail, filter, reportBuilder); * dispatcheredComponentStatusScreen.StatusText = currentBaseDetail + ". LLP Disk Sheet Status"; * dispatcheredComponentStatusScreen.Status = (Statuses)currentBaseDetail.LimitationCondition; * e.RequestedEntity = dispatcheredComponentStatusScreen; * */ e.TypeOfReflection = ReflectionTypes.DisplayInNew; e.DisplayerText = currentBaseDetail.ParentAircraft.Model + ". " + currentBaseDetail + ". LLP Disk Sheet Status"; TemplateDetailCollectionFilter filter = new TemplateDetailCollectionFilter(new TemplateDetailFilter[] { new TemplateEngineLLPFilter(currentBaseDetail) }); DispatcheredTemplateDetailListScreen dispatcheredComponentStatusControl = new DispatcheredTemplateDetailListScreen(currentBaseDetail, filter); e.RequestedEntity = dispatcheredComponentStatusControl; }
/// <summary> /// Обновляет информацию о текущем шаблонном ВС /// </summary> private void UpdateScreen() { try { currentAircraft.Reload(true); aircraftControl.Aircraft = currentAircraft; powerPlantsControl.Aircraft = currentAircraft; APUControl.BaseDetail = currentAircraft.Apu; APUContainer.MainControl = APUControl; performanceDataControl.Aircraft = currentAircraft; filter = new TemplateLandingGearsFilter(true, true, true); collectionFilter = new TemplateDetailCollectionFilter(currentAircraft.ContainedDetails, new TemplateDetailFilter[] { filter }); landingGearsControl.Details = collectionFilter.GatherDetails(); interiorConfigurationControl.Aircraft = currentAircraft; headerControl.ActionControl.ShowEditButton = currentAircraft.HasPermission(Users.CurrentUser, DataEvent.Update); } catch (Exception ex) { Program.Provider.Logger.Log("Error while loading data", ex); } }
/// <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="currentAircraft"></param> public TemplateAircraftGeneralDataScreen(TemplateAircraft currentAircraft) { this.currentAircraft = currentAircraft; BackColor = Css.CommonAppearance.Colors.BackColor; Dock = DockStyle.Fill; aircraftHeaderControl = new TemplateAircraftHeaderControl(currentAircraft, true, true); // // aircraftControl // aircraftControl = new TemplateAircraftControl(currentAircraft); // // powerPlantsControl // powerPlantsControl = new TemplatePowerPlantsControl(currentAircraft); // // APUControl // APUControl = new TemplateAPUControl(currentAircraft.Apu); // // performanceDataControl // performanceDataControl = new TemplatePerformanceDataControl(currentAircraft); // // landingGearsControl // filter = new TemplateLandingGearsFilter(true, true, true); collectionFilter = new TemplateDetailCollectionFilter(currentAircraft.ContainedDetails, new TemplateDetailFilter[] { filter }); landingGearsControl = new TemplateLandingGearsControl(collectionFilter.GatherDetails()); /* // * // maintenanceStatusControl * // * maintenanceStatusControl = new MaintenanceStatusControl();*/ // // interiorConfigurationControl // interiorConfigurationControl = new TemplateInteriorConfigurationControl(currentAircraft); // // aircraftContainer // aircraftContainer.Caption = "A. Aircraft"; aircraftContainer.UpperLeftIcon = icons.GrayArrow; aircraftContainer.MainControl = aircraftControl; aircraftContainer.Dock = DockStyle.Top; aircraftContainer.TabIndex = 1; // // powerPlantsContainer // powerPlantsContainer.Caption = "B. Power Plants"; powerPlantsContainer.UpperLeftIcon = icons.GrayArrow; powerPlantsContainer.MainControl = powerPlantsControl; powerPlantsContainer.Dock = DockStyle.Top; powerPlantsContainer.Extended = false; powerPlantsContainer.TabIndex = 2; // // APUContainer // APUContainer.Caption = "C. Auxiliary Power Unit"; APUContainer.UpperLeftIcon = icons.GrayArrow; APUContainer.MainControl = APUControl; APUContainer.Dock = DockStyle.Top; APUContainer.Extended = false; APUContainer.TabIndex = 3; // // performanceDataContainer // performanceDataContainer.Caption = "D. Performance Data"; performanceDataContainer.UpperLeftIcon = icons.GrayArrow; performanceDataContainer.MainControl = performanceDataControl; performanceDataContainer.Dock = DockStyle.Top; performanceDataContainer.Extended = false; performanceDataContainer.TabIndex = 4; // // landingGearsContainer // landingGearsContainer.Caption = "E. Landing Gears"; landingGearsContainer.UpperLeftIcon = icons.GrayArrow; landingGearsContainer.MainControl = landingGearsControl; landingGearsContainer.Dock = DockStyle.Top; landingGearsContainer.Extended = false; landingGearsContainer.TabIndex = 5; /* // * // maintenanceStatusContainer * // * maintenanceStatusContainer.Caption = "F. Maintenance Status"; * maintenanceStatusContainer.UpperLeftIcon = icons.GrayArrow; * maintenanceStatusContainer.MainControl = maintenanceStatusControl; * maintenanceStatusContainer.Dock = DockStyle.Top; * maintenanceStatusContainer.Extended = false; * maintenanceStatusContainer.TabIndex = 6;*/ // // interiorConfigurationContainer // interiorConfigurationContainer.Caption = "G. Interior Configuration"; interiorConfigurationContainer.UpperLeftIcon = icons.GrayArrow; interiorConfigurationContainer.MainControl = interiorConfigurationControl; interiorConfigurationContainer.Dock = DockStyle.Top; interiorConfigurationContainer.Extended = false; interiorConfigurationContainer.TabIndex = 7; // // headerControl // headerControl.ContextActionControl.ShowPrintButton = true; headerControl.ActionControl.ButtonEdit.TextMain = "Save"; headerControl.ActionControl.ButtonEdit.Icon = icons.Save; headerControl.ActionControl.ButtonEdit.IconNotEnabled = icons.SaveGray; headerControl.ActionControl.ButtonEdit.DisplayerRequested += ButtonSave_Click; headerControl.ActionControl.ButtonReload.Click += ButtonReload_Click; headerControl.ContextActionControl.ShowPrintButton = false; headerControl.Controls.Add(aircraftHeaderControl); headerControl.ActionControl.ShowEditButton = currentAircraft.HasPermission(Users.CurrentUser, DataEvent.Update); headerControl.TabIndex = 0; // // mainPanel // mainPanel.AutoScroll = true; mainPanel.Dock = DockStyle.Fill; mainPanel.TabIndex = 1; mainPanel.Controls.Add(interiorConfigurationContainer); //mainPanel.Controls.Add(maintenanceStatusContainer); mainPanel.Controls.Add(landingGearsContainer); mainPanel.Controls.Add(performanceDataContainer); if (currentAircraft.Apu != null) { mainPanel.Controls.Add(APUContainer); } if (currentAircraft.Engines.Length > 0) { mainPanel.Controls.Add(powerPlantsContainer); } mainPanel.Controls.Add(aircraftContainer); Controls.Add(mainPanel); Controls.Add(headerControl); Controls.Add(footerControl); }
private void filterSelection_ApplyFilter(object sender, EventArgs e) { additionalFilter = filterSelection.GetDetailCollectionFilter(); ShowDetails(); }
///<summary> /// Создает элемент управления для отображения списка шаблонных агрегатов ///</summary> ///<param name="currentAircraft">Шаблонное ВС, содержащее агрегаты</param> /// ///<param name="initialFilter">Фильтр отображения</param> public TemplateDetailListScreen(TemplateAircraft currentAircraft, TemplateDetailCollectionFilter initialFilter) : this(currentAircraft, initialFilter, null) { }