/// <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); } }
private void UpdateAircraft(bool reloadAircraft) { try { if (reloadAircraft) { currentAircraft.Reload(true); } } catch (Exception ex) { Program.Provider.Logger.Log("Error while loading data", ex); return; } UnHookBaseDetailEvents(); UpdateHeader(); aircraftInfoReference.UpdateData(); if (flowLayoutPanelBaseDetailsContainer.Controls.Contains(apuControl)) { flowLayoutPanelBaseDetailsContainer.Controls.Remove(apuControl); } for (int i = 0; i < enginesControls.Length; i++) { if (flowLayoutPanelBaseDetailsContainer.Controls.Contains(enginesControls[i])) { flowLayoutPanelBaseDetailsContainer.Controls.Remove(enginesControls[i]); } } aircraftFrameControl.UpdateInformation(); List <TemplateEngine> engines = new List <TemplateEngine>(); engines.AddRange(currentAircraft.Engines); engines.Sort(new TemplateEnginePositionSerialNumberComparerDesc()); enginesControls = new TemplateBaseDetailControl[engines.Count]; flowLayoutPanelBaseDetailsContainer.AutoSize = false; for (int i = 0; i < engines.Count; i++) { if (engines[i] != null) { enginesControls[i] = new TemplateBaseDetailControl(engines[i]); enginesControls[i].TabIndex = engines.Count - i; enginesControls[i].Tag = engines[i]; flowLayoutPanelBaseDetailsContainer.Controls.Add(enginesControls[i]); } } if (currentAircraft.Apu != null) { apuControl = new TemplateBaseDetailControl(currentAircraft.Apu); apuControl.Height = 50; apuControl.TabIndex = enginesControls.Length + 1; flowLayoutPanelBaseDetailsContainer.Controls.Add(apuControl); } flowLayoutPanelBaseDetailsContainer.AutoSize = true; landingGearsButtons.UpdateInformation(); HookBaseDetailEvents(); /* aircraftInfoReference.UpdateData(); * if (flowLayoutPanelBaseDetailsContainer.Controls.Contains(aircraftFrameControl)) * flowLayoutPanelBaseDetailsContainer.Controls.Remove(aircraftFrameControl); * if (flowLayoutPanelBaseDetailsContainer.Controls.Contains(apuControl)) * flowLayoutPanelBaseDetailsContainer.Controls.Remove(apuControl); * if (enginesControls != null) * { * for (int i = 0; i < enginesControls.Length; i++) * { * if (flowLayoutPanelBaseDetailsContainer.Controls.Contains(enginesControls[i])) * flowLayoutPanelBaseDetailsContainer.Controls.Remove(enginesControls[i]); * } * } * if (currentAircraft.TemplateAircraftContainer != null) * { * aircraftFrameControl = new TemplateBaseDetailControl(currentAircraft.TemplateAircraftContainer); * aircraftFrameControl.Dock = DockStyle.Top; * aircraftFrameControl.TabIndex = 0; * } * List<TemplateEngine> engines = new List<TemplateEngine>(); * engines.AddRange(currentAircraft.Engines); * engines.Sort(new TemplateEnginePositionSerialNumberComparerDesc()); * enginesControls = new TemplateBaseDetailControl[engines.Count]; * for (int i = 0; i < engines.Count; i++) * { * if (engines[i] != null) * { * enginesControls[i] = new TemplateBaseDetailControl(engines[i]); * enginesControls[i].Dock = DockStyle.Top; * enginesControls[i].TabIndex = engines.Count - i; * } * } * if (currentAircraft.Apu != null) * { * apuControl = new TemplateBaseDetailControl(currentAircraft.Apu); * apuControl.Dock = DockStyle.Top; * apuControl.TabIndex = enginesControls.Length + 1; * } * * /* * if (currentAircraft.GearAssembly != null) //todo массив GearAssembly * { * landingGearsButtons = new TemplateLandingGearsButtonsControl(new TemplateDetail[] {});// currentAircraft.GearAssembly); * landingGearsButtons.Dock = DockStyle.Top; * landingGearsButtons.BackColor = Color.Transparent; * landingGearsButtons.TabIndex = enginesControls.Length + 2; * } */ /* flowLayoutPanelBaseDetailsContainer.Controls.Clear(); * * * flowLayoutPanelBaseDetailsContainer.Controls.Add(landingGearsButtons); * flowLayoutPanelBaseDetailsContainer.Controls.Add(apuControl); * flowLayoutPanelBaseDetailsContainer.Controls.AddRange(enginesControls); * flowLayoutPanelBaseDetailsContainer.Controls.Add(aircraftFrameControl); * * paddingPanel.SendToBack(); * * headerControl.ActionControl.ButtonEdit.Enabled = * currentAircraft.HasPermission(Users.CurrentUser, DataEvent.Update);*/ }