Beispiel #1
0
        ///<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);
        }
Beispiel #2
0
        /// <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());
        }
Beispiel #3
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;
 }
 ///<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();
 }
Beispiel #5
0
        /// <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;
        }
Beispiel #8
0
        /// <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);
            }
        }
Beispiel #9
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;
 }
Beispiel #10
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;
 }
Beispiel #11
0
        /// <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)
 {
 }