public PageShowRoute(Route route) { this.Classes = new ObservableCollection <MVVMRouteClass>(); this.Route = new HumanRouteMVVM(route); this.DataContext = this.Route; foreach (AirlinerClass.ClassType type in AirlinerClass.GetAirlinerTypes()) { if (this.Route.Route is PassengerRoute) { RouteAirlinerClass rClass = ((PassengerRoute)this.Route.Route).getRouteAirlinerClass(type); MVVMRouteClass mClass = new MVVMRouteClass(type, rClass.Seating, rClass.FarePrice); this.Classes.Add(mClass); } } InitializeComponent(); this.Loaded += PageShowRoute_Loaded; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { Route route = (Route)value; List <KeyValuePair <string, object> > stats = new List <KeyValuePair <string, object> >(); if (route.Type == Route.RouteType.Passenger) { RouteAirlinerClass raClass = ((PassengerRoute)route).getRouteAirlinerClass(AirlinerClass.ClassType.Economy_Class); double passengers = route.Statistics.getStatisticsValue(raClass, StatisticsTypes.GetStatisticsType("Passengers")); double avgPassengers = route.Statistics.getStatisticsValue(raClass, StatisticsTypes.GetStatisticsType("Passengers%")); stats.Add(new KeyValuePair <string, object>("Total Passengers", passengers)); stats.Add(new KeyValuePair <string, object>("Average Passengers", Math.Max(0, avgPassengers))); } if (route.Type == Route.RouteType.Cargo) { double cargo = route.Statistics.getStatisticsValue(StatisticsTypes.GetStatisticsType("Cargo")); double avgCargo = route.Statistics.getStatisticsValue(StatisticsTypes.GetStatisticsType("Cargo%")); stats.Add(new KeyValuePair <string, object>("Total Cargo", cargo)); stats.Add(new KeyValuePair <string, object>("Average Cargo", Math.Max(0, avgCargo))); } stats.Add(new KeyValuePair <string, object>("Filling Degree", string.Format("{0:0.##} %", route.FillingDegree * 100))); return(stats); }
public RouteMVVM(Route route) { this.Route = route; this.FillingDegree = this.Route.FillingDegree; this.Balance = this.Route.Balance; this.Distance = MathHelpers.GetDistance(this.Route.Destination1, this.Route.Destination2); if (route.Type == Route.RouteType.Passenger) { RouteAirlinerClass raClass = ((PassengerRoute)route).getRouteAirlinerClass(AirlinerClass.ClassType.Economy_Class); this.Total = route.Statistics.getStatisticsValue(raClass, StatisticsTypes.GetStatisticsType("Passengers")); this.Average = route.Statistics.getStatisticsValue(raClass, StatisticsTypes.GetStatisticsType("Passengers%")); } if (route.Type == Route.RouteType.Cargo) { this.Total = route.Statistics.getStatisticsValue(StatisticsTypes.GetStatisticsType("Cargo")); this.Average = route.Statistics.getStatisticsValue(StatisticsTypes.GetStatisticsType("Cargo%")); } if (this.Average < 0) { this.Average = 0; } }
private void btnEdit_Click(object sender, RoutedEventArgs e) { KeyValuePair <Route, AirlinerClass.ClassType> type = (KeyValuePair <Route, AirlinerClass.ClassType>)((Button)sender).Tag; RouteAirlinerClass aClass = (RouteAirlinerClass)PopUpRouteFacilities.ShowPopUp(this.Classes[type.Key][type.Value]); if (aClass != null) { foreach (RouteFacility facility in aClass.getFacilities()) { this.Classes[type.Key][type.Value].addFacility(facility); } double rate = 1; if (GameObject.GetInstance().CurrencyCountry != null) { CountryCurrency currency = GameObject.GetInstance().CurrencyCountry.getCurrency(GameObject.GetInstance().GameTime); rate = currency == null ? 1 : currency.Rate; } this.Classes[type.Key][type.Value].FarePrice = aClass.FarePrice / rate; this.Classes[type.Key][type.Value].Seating = aClass.Seating; } }
public static object ShowPopUp(RouteAirlinerClass aClass) { PopUpWindow window = new PopUpRouteFacilities(aClass); window.ShowDialog(); return(window.Selected); }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { try { RouteAirlinerClass rClass = (RouteAirlinerClass)value; RouteFacility.FacilityType facilityType = (RouteFacility.FacilityType)Enum.Parse(typeof(RouteFacility.FacilityType), parameter.ToString()); return(rClass.getFacility(facilityType).Name); } catch { return(""); } }
//creates the panel for the statistics for a leg private StackPanel createLegStatistics(Route leg) { StackPanel panelLegStatistics = new StackPanel(); panelLegStatistics.Margin = new Thickness(0, 5, 0, 0); TextBlock txtHeader = new TextBlock(); txtHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; txtHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush2"); txtHeader.FontWeight = FontWeights.Bold; txtHeader.Text = string.Format("{0}-{1}", new AirportCodeConverter().Convert(leg.Destination1), new AirportCodeConverter().Convert(leg.Destination2)); panelLegStatistics.Children.Add(txtHeader); ListBox lbLegStatistics = new ListBox(); lbLegStatistics.ItemContainerStyleSelector = new ListBoxItemStyleSelector(); lbLegStatistics.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem"); panelLegStatistics.Children.Add(lbLegStatistics); if (leg.Type == Route.RouteType.Mixed || leg.Type == Model.AirlinerModel.RouteModel.Route.RouteType.Passenger) { RouteAirlinerClass raClass = ((PassengerRoute)leg).getRouteAirlinerClass(AirlinerClass.ClassType.Economy_Class); double passengers = leg.Statistics.getStatisticsValue(raClass, StatisticsTypes.GetStatisticsType("Passengers")); double avgPassengers = leg.Statistics.getStatisticsValue(raClass, StatisticsTypes.GetStatisticsType("Passengers%")); lbLegStatistics.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1009"), UICreator.CreateTextBlock(String.Format("{0:0,0}", passengers)))); lbLegStatistics.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1010"), UICreator.CreateTextBlock(string.Format("{0:0.##}", avgPassengers)))); } if (leg.Type == Route.RouteType.Mixed || leg.Type == Route.RouteType.Cargo) { double cargo = leg.Statistics.getStatisticsValue(StatisticsTypes.GetStatisticsType("Cargo")); double avgCargo = leg.Statistics.getStatisticsValue(StatisticsTypes.GetStatisticsType("Cargo%")); lbLegStatistics.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1013"), UICreator.CreateTextBlock(String.Format("{0:0,0}", cargo)))); lbLegStatistics.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1014"), UICreator.CreateTextBlock(string.Format("{0:0.##}", avgCargo)))); } lbLegStatistics.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1011"), UICreator.CreateTextBlock(string.Format("{0:0.##} %", leg.FillingDegree * 100)))); lbLegStatistics.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1012"), UICreator.CreateTextBlock(new ValueCurrencyConverter().Convert(leg.Balance).ToString()))); return(panelLegStatistics); }
//shows the passengers private void showDemand() { lbPassengers.Items.Clear(); List <Airport> airports; if (domesticDemand) { airports = Airports.GetAirports(a => a != this.Airport && a.Profile.Country == this.Airport.Profile.Country).OrderByDescending(a => this.Airport.getDestinationPassengersRate(a, AirlinerClass.ClassType.Economy_Class)).ToList(); } else { airports = Airports.GetAirports(a => a != this.Airport && a.Profile.Country != this.Airport.Profile.Country).OrderByDescending(a => this.Airport.getDestinationPassengersRate(a, AirlinerClass.ClassType.Economy_Class)).ToList(); } foreach (Airport airport in airports) { int passengers = this.Airport.getDestinationPassengersRate(airport, AirlinerClass.ClassType.Economy_Class); int cargo = this.Airport.getDestinationCargoRate(airport); if (passengers > 0 || cargo > 0) { DestinationDemand passengerDemand = new DestinationDemand(airport.Profile.IATACode, (ushort)passengers); DestinationDemand cargoDemand = new DestinationDemand(airport.Profile.IATACode, (ushort)cargo); int demand = passengers; int covered = 0; List <Route> routes = AirportHelpers.GetAirportRoutes(airport, this.Airport).Where(r => r.Type == Route.RouteType.Mixed || r.Type == Route.RouteType.Passenger).ToList(); foreach (Route route in routes) { RouteAirlinerClass raClass = ((PassengerRoute)route).getRouteAirlinerClass(AirlinerClass.ClassType.Economy_Class); double avgPassengers = route.Statistics.getStatisticsValue(raClass, StatisticsTypes.GetStatisticsType("Passengers%")); double flights = route.TimeTable.Entries.Count; double routeCovered = avgPassengers / (7.0 / flights); covered += (int)routeCovered; } KeyValuePair <DestinationDemand, int> paxDemand = new KeyValuePair <DestinationDemand, int>(passengerDemand, Math.Max(0, demand - covered)); KeyValuePair <DestinationDemand, int> cDemand = new KeyValuePair <DestinationDemand, int>(cargoDemand, 0); KeyValuePair <KeyValuePair <DestinationDemand, int>, KeyValuePair <DestinationDemand, int> > totalDemand = new KeyValuePair <KeyValuePair <DestinationDemand, int>, KeyValuePair <DestinationDemand, int> >(paxDemand, cDemand); lbPassengers.Items.Add(totalDemand); } } }
public PageShowRoute(Route route) { this.Classes = new ObservableCollection <MVVMRouteClass>(); this.Route = route; this.DataContext = this.Route; foreach (AirlinerClass.ClassType type in AirlinerClass.GetAirlinerTypes()) { if (this.Route is PassengerRoute) { RouteAirlinerClass rClass = ((PassengerRoute)this.Route).getRouteAirlinerClass(type); MVVMRouteClass mClass = new MVVMRouteClass(type, rClass.Seating, rClass.FarePrice); this.Classes.Add(mClass); } } this.Invoices = new List <MonthlyInvoice>(); foreach (Invoice.InvoiceType type in this.Route.getRouteInvoiceTypes()) { this.Invoices.Add(new MonthlyInvoice(type, 1950, 1, this.Route.getRouteInvoiceAmount(type))); } this.Legs = new List <Route>(); this.Legs.Add(this.Route); this.Legs.AddRange(this.Route.Stopovers.SelectMany(s => s.Legs)); InitializeComponent(); Boolean inRoute = this.Route.getAirliners().Exists(a => a.Status != FleetAirliner.AirlinerStatus.Stopped); cbEdit.Visibility = inRoute ? Visibility.Collapsed : System.Windows.Visibility.Visible; this.Loaded += PageShowRoute_Loaded; }
public PanelRoute(PageRoutes parent, Route route) { this.Classes = new Dictionary <Route, Dictionary <AirlinerClass.ClassType, RouteAirlinerClass> >(); this.ParentPage = parent; this.Route = route; this.Margin = new Thickness(0, 0, 50, 0); TextBlock txtHeader = new TextBlock(); txtHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; txtHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush2"); txtHeader.FontWeight = FontWeights.Bold; txtHeader.Uid = "1000"; txtHeader.Text = Translator.GetInstance().GetString("PanelRoute", txtHeader.Uid); this.Children.Add(txtHeader); ListBox lbRouteInfo = new ListBox(); lbRouteInfo.ItemContainerStyleSelector = new ListBoxItemStyleSelector(); lbRouteInfo.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem"); this.Children.Add(lbRouteInfo); double distance = MathHelpers.GetDistance(this.Route.Destination1.Profile.Coordinates, this.Route.Destination2.Profile.Coordinates); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1016"), UICreator.CreateTextBlock(this.Route.Type.ToString()))); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1001"), UICreator.CreateTextBlock(this.Route.Destination1.Profile.Name))); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1002"), UICreator.CreateTextBlock(this.Route.Destination2.Profile.Name))); if (this.Route.HasStopovers) { lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1003"), UICreator.CreateTextBlock(string.Join(", ", from s in this.Route.Stopovers select new AirportCodeConverter().Convert(s.Stopover).ToString())))); } lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1004"), UICreator.CreateTextBlock(string.Format("{0:0} {1}", new NumberToUnitConverter().Convert(distance), new StringToLanguageConverter().Convert("km."))))); if (this.Route.Type == Route.RouteType.Passenger || this.Route.Type == Route.RouteType.Mixed) { this.Classes.Add(route, new Dictionary <AirlinerClass.ClassType, RouteAirlinerClass>()); foreach (AirlinerClass.ClassType type in Enum.GetValues(typeof(AirlinerClass.ClassType))) { RouteAirlinerClass rClass = ((PassengerRoute)this.Route).getRouteAirlinerClass(type); this.Classes[route].Add(type, rClass); WrapPanel panelClassButtons = new WrapPanel(); Button btnEdit = new Button(); btnEdit.Background = Brushes.Transparent; btnEdit.Tag = new KeyValuePair <Route, AirlinerClass.ClassType>(this.Route, type); btnEdit.Click += new RoutedEventHandler(btnEdit_Click); Image imgEdit = new Image(); imgEdit.Width = 16; imgEdit.Source = new BitmapImage(new Uri(@"/Data/images/edit.png", UriKind.RelativeOrAbsolute)); RenderOptions.SetBitmapScalingMode(imgEdit, BitmapScalingMode.HighQuality); btnEdit.Content = imgEdit; Boolean inRoute = route.getAirliners().Exists(a => a.Status != FleetAirliner.AirlinerStatus.Stopped); //btnEdit.Visibility = this.Route.HasAirliner && (this.Route.getCurrentAirliner() != null && this.Route.getCurrentAirliner().Status != FleetAirliner.AirlinerStatus.Stopped) ? Visibility.Collapsed : System.Windows.Visibility.Visible; btnEdit.Visibility = inRoute ? Visibility.Collapsed : System.Windows.Visibility.Visible; panelClassButtons.Children.Add(btnEdit); Image imgInfo = new Image(); imgInfo.Width = 16; imgInfo.Source = new BitmapImage(new Uri(@"/Data/images/info.png", UriKind.RelativeOrAbsolute)); imgInfo.Margin = new Thickness(5, 0, 0, 0); imgInfo.VerticalAlignment = System.Windows.VerticalAlignment.Bottom; RenderOptions.SetBitmapScalingMode(imgInfo, BitmapScalingMode.HighQuality); Border brdToolTip = new Border(); brdToolTip.Margin = new Thickness(-4, 0, -4, -3); brdToolTip.Padding = new Thickness(5); brdToolTip.SetResourceReference(Border.BackgroundProperty, "HeaderBackgroundBrush2"); ContentControl lblClass = new ContentControl(); lblClass.SetResourceReference(ContentControl.ContentTemplateProperty, "RouteAirlinerClassItem"); lblClass.Content = rClass; brdToolTip.Child = lblClass; imgInfo.ToolTip = brdToolTip; panelClassButtons.Children.Add(imgInfo); lbRouteInfo.Items.Add(new QuickInfoValue(new TextUnderscoreConverter().Convert(type, null, null, null).ToString(), panelClassButtons)); } } if (this.Route.Type == Model.AirlinerModel.RouteModel.Route.RouteType.Mixed || this.Route.Type == Model.AirlinerModel.RouteModel.Route.RouteType.Cargo) { this.CargoPrice = ((CargoRoute)this.Route).PricePerUnit; WrapPanel panelCargo = new WrapPanel(); txtCargo = UICreator.CreateTextBlock(new ValueCurrencyConverter().Convert(this.CargoPrice).ToString()); txtCargo.VerticalAlignment = System.Windows.VerticalAlignment.Bottom; panelCargo.Children.Add(txtCargo); Button btnEditCargo = new Button(); btnEditCargo.Margin = new Thickness(5, 0, 0, 0); btnEditCargo.Background = Brushes.Transparent; btnEditCargo.Click += new RoutedEventHandler(btnEditCargo_Click); Image imgEdit = new Image(); imgEdit.Width = 16; imgEdit.Source = new BitmapImage(new Uri(@"/Data/images/edit.png", UriKind.RelativeOrAbsolute)); RenderOptions.SetBitmapScalingMode(imgEdit, BitmapScalingMode.HighQuality); btnEditCargo.Content = imgEdit; panelCargo.Children.Add(btnEditCargo); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1015"), panelCargo)); } foreach (StopoverRoute stopover in this.Route.Stopovers) { foreach (Route leg in stopover.Legs) { lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1005"), UICreator.CreateTextBlock(string.Format("{0}-{1}", new AirportCodeConverter().Convert(leg.Destination1), new AirportCodeConverter().Convert(leg.Destination2))))); if (this.Route.Type == Route.RouteType.Passenger || this.Route.Type == Route.RouteType.Mixed) { this.Classes.Add(leg, new Dictionary <AirlinerClass.ClassType, RouteAirlinerClass>()); foreach (AirlinerClass.ClassType type in Enum.GetValues(typeof(AirlinerClass.ClassType))) { RouteAirlinerClass rClass = ((PassengerRoute)leg).getRouteAirlinerClass(type); this.Classes[leg].Add(type, rClass); WrapPanel panelClassButtons = new WrapPanel(); Button btnEdit = new Button(); btnEdit.Background = Brushes.Transparent; btnEdit.Tag = new KeyValuePair <Route, AirlinerClass.ClassType>(leg, type); btnEdit.Click += new RoutedEventHandler(btnEdit_Click); Image imgEdit = new Image(); imgEdit.Width = 16; imgEdit.Source = new BitmapImage(new Uri(@"/Data/images/edit.png", UriKind.RelativeOrAbsolute)); RenderOptions.SetBitmapScalingMode(imgEdit, BitmapScalingMode.HighQuality); btnEdit.Content = imgEdit; btnEdit.Visibility = this.Route.HasAirliner && (this.Route.getCurrentAirliner() != null && this.Route.getCurrentAirliner().Status != FleetAirliner.AirlinerStatus.Stopped) ? Visibility.Collapsed : System.Windows.Visibility.Visible; panelClassButtons.Children.Add(btnEdit); Image imgInfo = new Image(); imgInfo.Width = 16; imgInfo.Source = new BitmapImage(new Uri(@"/Data/images/info.png", UriKind.RelativeOrAbsolute)); imgInfo.Margin = new Thickness(5, 0, 0, 0); imgInfo.VerticalAlignment = System.Windows.VerticalAlignment.Bottom; RenderOptions.SetBitmapScalingMode(imgInfo, BitmapScalingMode.HighQuality); Border brdToolTip = new Border(); brdToolTip.Margin = new Thickness(-4, 0, -4, -3); brdToolTip.Padding = new Thickness(5); brdToolTip.SetResourceReference(Border.BackgroundProperty, "HeaderBackgroundBrush2"); ContentControl lblClass = new ContentControl(); lblClass.SetResourceReference(ContentControl.ContentTemplateProperty, "RouteAirlinerClassItem"); lblClass.Content = rClass; brdToolTip.Child = lblClass; imgInfo.ToolTip = brdToolTip; panelClassButtons.Children.Add(imgInfo); lbRouteInfo.Items.Add(new QuickInfoValue(new TextUnderscoreConverter().Convert(type).ToString(), panelClassButtons)); } } } } int numberOfInboundFlights = this.Route.TimeTable.Entries.Count(e => e.DepartureAirport == this.Route.Destination2); int numberOfOutboundFlights = this.Route.TimeTable.Entries.Count(e => e.DepartureAirport == this.Route.Destination1); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelRoute", "1006"), UICreator.CreateTextBlock(string.Format("{0} / {1}", numberOfOutboundFlights, numberOfInboundFlights)))); WrapPanel buttonsPanel = new WrapPanel(); buttonsPanel.Margin = new Thickness(0, 5, 0, 0); this.Children.Add(buttonsPanel); buttonsPanel.Visibility = this.Route.HasAirliner && (this.Route.getCurrentAirliner() != null && this.Route.getCurrentAirliner().Status != FleetAirliner.AirlinerStatus.Stopped) ? Visibility.Collapsed : System.Windows.Visibility.Visible; Button btnOk = new Button(); btnOk.SetResourceReference(Button.StyleProperty, "RoundedButton"); btnOk.Height = Double.NaN; btnOk.Width = Double.NaN; btnOk.Uid = "100"; btnOk.Content = Translator.GetInstance().GetString("General", btnOk.Uid); btnOk.SetResourceReference(Button.BackgroundProperty, "ButtonBrush"); btnOk.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; btnOk.Click += new RoutedEventHandler(btnOk_Click); buttonsPanel.Children.Add(btnOk); Button btnLoad = new Button(); btnLoad.SetResourceReference(Button.StyleProperty, "RoundedButton"); btnLoad.Height = Double.NaN; btnLoad.Width = Double.NaN; btnLoad.Uid = "115"; btnLoad.Content = Translator.GetInstance().GetString("General", btnLoad.Uid); btnLoad.SetResourceReference(Button.BackgroundProperty, "ButtonBrush"); btnLoad.Click += new RoutedEventHandler(btnLoad_Click); btnLoad.Margin = new Thickness(5, 0, 0, 0); btnLoad.Visibility = this.Route.Type == Route.RouteType.Cargo ? Visibility.Collapsed : System.Windows.Visibility.Visible; buttonsPanel.Children.Add(btnLoad); Button btnDelete = new Button(); btnDelete.SetResourceReference(Button.StyleProperty, "RoundedButton"); btnDelete.Height = Double.NaN; btnDelete.Width = Double.NaN; btnDelete.Uid = "200"; btnDelete.Content = Translator.GetInstance().GetString("PanelRoute", btnDelete.Uid); btnDelete.SetResourceReference(Button.BackgroundProperty, "ButtonBrush"); btnDelete.Margin = new System.Windows.Thickness(5, 0, 0, 0); btnDelete.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; btnDelete.Click += new RoutedEventHandler(btnDelete_Click); buttonsPanel.Children.Add(btnDelete); //if (this.Route.HasStopovers) { this.Children.Add(createStopoverStatisticsPanel()); } //else { // this.Children.Add(createRouteFinancesPanel()); } showRouteFinances(); }
//creates the routes details private StackPanel createRoutesInfo() { StackPanel panelRoutesInfo = new StackPanel(); TextBlock txtHeader = new TextBlock(); txtHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; txtHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush2"); txtHeader.FontWeight = FontWeights.Bold; txtHeader.Text = "Routes Information"; panelRoutesInfo.Children.Add(txtHeader); ScrollViewer svRoutes = new ScrollViewer(); svRoutes.MaxHeight = GraphicsHelpers.GetContentHeight() / 2; svRoutes.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; svRoutes.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; panelRoutesInfo.Children.Add(svRoutes); StackPanel panelRoutes = new StackPanel(); svRoutes.Content = panelRoutes; foreach (Route route in this.Airliner.Routes) { ListBox lbRouteInfo = new ListBox(); lbRouteInfo.ItemContainerStyleSelector = new ListBoxItemStyleSelector(); lbRouteInfo.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem"); lbRouteInfo.Margin = new Thickness(0, 0, 0, 5); panelRoutes.Children.Add(lbRouteInfo); double distance = MathHelpers.GetDistance(route.Destination1.Profile.Coordinates, route.Destination2.Profile.Coordinates); lbRouteInfo.Items.Add(new QuickInfoValue("Route", UICreator.CreateTextBlock(string.Format("{0} <-> {1}", route.Destination1.Profile.Name, route.Destination2.Profile.Name)))); // chs, 2011-10-10 added missing conversion lbRouteInfo.Items.Add(new QuickInfoValue("Distance", UICreator.CreateTextBlock(string.Format("{0:0} {1}", new NumberToUnitConverter().Convert(distance), new StringToLanguageConverter().Convert("km."))))); if (route.Type == Route.RouteType.Passenger || route.Type == Route.RouteType.Mixed) { foreach (AirlinerClass aClass in this.Airliner.Airliner.Classes) { RouteAirlinerClass rClass = ((PassengerRoute)route).getRouteAirlinerClass(aClass.Type); Image imgInfo = new Image(); imgInfo.Width = 16; imgInfo.Source = new BitmapImage(new Uri(@"/Data/images/info.png", UriKind.RelativeOrAbsolute)); imgInfo.Margin = new Thickness(5, 0, 0, 0); RenderOptions.SetBitmapScalingMode(imgInfo, BitmapScalingMode.HighQuality); Border brdToolTip = new Border(); brdToolTip.Margin = new Thickness(-4, 0, -4, -3); brdToolTip.Padding = new Thickness(5); brdToolTip.SetResourceReference(Border.BackgroundProperty, "HeaderBackgroundBrush2"); ContentControl lblClass = new ContentControl(); lblClass.SetResourceReference(ContentControl.ContentTemplateProperty, "RouteAirlinerClassItem"); lblClass.Content = rClass; brdToolTip.Child = lblClass; imgInfo.ToolTip = brdToolTip; lbRouteInfo.Items.Add(new QuickInfoValue(new TextUnderscoreConverter().Convert(aClass.Type, null, null, null).ToString(), imgInfo)); } } } WrapPanel buttonsPanel = new WrapPanel(); buttonsPanel.Margin = new Thickness(0, 5, 0, 0); Button btnTimeTable = new Button(); btnTimeTable.SetResourceReference(Button.StyleProperty, "RoundedButton"); btnTimeTable.Height = Double.NaN; btnTimeTable.Width = Double.NaN; btnTimeTable.Content = "Timetable"; btnTimeTable.Visibility = Visibility.Visible;// Visibility.Collapsed;//this.Airliner.Airliner.Airline.IsHuman ? Visibility.Collapsed : Visibility.Visible; btnTimeTable.Click += new RoutedEventHandler(btnTimeTable_Click); btnTimeTable.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; btnTimeTable.SetResourceReference(Button.BackgroundProperty, "ButtonBrush"); buttonsPanel.Children.Add(btnTimeTable); Button btnMap = new Button(); btnMap.SetResourceReference(Button.StyleProperty, "RoundedButton"); btnMap.Width = Double.NaN; btnMap.Height = Double.NaN; btnMap.Content = "Routes map"; btnMap.Margin = new Thickness(2, 0, 0, 0); btnMap.SetResourceReference(Button.BackgroundProperty, "ButtonBrush"); btnMap.Click += new RoutedEventHandler(btnMap_Click); buttonsPanel.Children.Add(btnMap); panelRoutesInfo.Children.Add(buttonsPanel); return(panelRoutesInfo); }
public PopUpRouteFacilities(RouteAirlinerClass aClass) { this.cbFacilities = new List <ComboBox>(); this.Uid = "1000"; this.AirlinerClass = new RouteAirlinerClass(aClass.Type, aClass.Seating, aClass.FarePrice); foreach (RouteFacility facility in aClass.getFacilities()) { this.AirlinerClass.addFacility(facility); } InitializeComponent(); this.Title = Translator.GetInstance().GetString("PopUpRouteFacilities", this.Uid); this.Width = 400; this.Height = 250; this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen; StackPanel contentPanel = new StackPanel(); ListBox lbRouteInfo = new ListBox(); lbRouteInfo.ItemContainerStyleSelector = new ListBoxItemStyleSelector(); lbRouteInfo.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem"); contentPanel.Children.Add(lbRouteInfo); foreach (RouteFacility.FacilityType type in Enum.GetValues(typeof(RouteFacility.FacilityType))) { if (GameObject.GetInstance().GameTime.Year >= (int)type) { ComboBox cbFacility = new ComboBox(); cbFacility.Background = Brushes.Transparent; cbFacility.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle"); cbFacility.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; cbFacility.DisplayMemberPath = "Name"; cbFacility.SelectedValuePath = "Name"; cbFacility.Tag = type; cbFacility.Width = 150; foreach (RouteFacility facility in AirlineHelpers.GetRouteFacilities(GameObject.GetInstance().HumanAirline, type)) { cbFacility.Items.Add(facility); } cbFacilities.Add(cbFacility); lbRouteInfo.Items.Add(new QuickInfoValue(new TextUnderscoreConverter().Convert(type).ToString(), cbFacility)); cbFacility.SelectedItem = this.AirlinerClass.getFacility(type); } } // chs, 2011-18-10 added for type of seating cbSeating = new ComboBox(); cbSeating.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle"); cbSeating.Width = 150; cbSeating.ItemTemplate = this.Resources["SeatingItem"] as DataTemplate; foreach (RouteAirlinerClass.SeatingType sType in Enum.GetValues(typeof(RouteAirlinerClass.SeatingType))) { cbSeating.Items.Add(sType); } lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PopUpRouteFacilities", "1004"), cbSeating)); WrapPanel panelPrice = new WrapPanel(); txtPrice = new TextBox(); txtPrice.Background = Brushes.Transparent; txtPrice.Width = 100; txtPrice.TextAlignment = TextAlignment.Right; txtPrice.Margin = new Thickness(2, 0, 0, 0); txtPrice.PreviewKeyDown += new KeyEventHandler(txtPrice_PreviewKeyDown); txtPrice.PreviewTextInput += new TextCompositionEventHandler(txtPrice_PreviewTextInput); txtPrice.TextChanged += new TextChangedEventHandler(txtPrice_TextChanged); panelPrice.Children.Add(txtPrice); CultureInfo cultureInfo = new CultureInfo(AppSettings.GetInstance().getLanguage().CultureInfo, false); CountryCurrency currency = null; if (GameObject.GetInstance().CurrencyCountry != null) { currency = GameObject.GetInstance().CurrencyCountry.getCurrency(GameObject.GetInstance().GameTime); } TextBlock txtCurrencySign = UICreator.CreateTextBlock(currency == null ? cultureInfo.NumberFormat.CurrencySymbol : currency.CurrencySymbol); txtCurrencySign.VerticalAlignment = System.Windows.VerticalAlignment.Center; panelPrice.Children.Add(txtCurrencySign); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PopUpRouteFacilities", "1005"), panelPrice)); WrapPanel panelButtons = new WrapPanel(); panelButtons.Margin = new Thickness(0, 5, 0, 0); contentPanel.Children.Add(panelButtons); btnOk = new Button(); btnOk.Uid = "100"; btnOk.SetResourceReference(Button.StyleProperty, "RoundedButton"); btnOk.Height = Double.NaN; btnOk.Width = Double.NaN; btnOk.Content = Translator.GetInstance().GetString("General", btnOk.Uid); btnOk.SetResourceReference(Button.BackgroundProperty, "ButtonBrush"); //btnOk.Margin = new System.Windows.Thickness(0, 5, 0, 0); btnOk.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; btnOk.Click += new RoutedEventHandler(btnOk_Click); btnOk.IsEnabled = false; panelButtons.Children.Add(btnOk); Button btnCancel = new Button(); btnCancel.Uid = "101"; btnCancel.SetResourceReference(Button.StyleProperty, "RoundedButton"); btnCancel.Height = Double.NaN; btnCancel.Width = Double.NaN; btnCancel.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; btnCancel.Click += new RoutedEventHandler(btnCancel_Click); btnCancel.Margin = new Thickness(5, 0, 0, 0); btnCancel.Content = Translator.GetInstance().GetString("General", btnCancel.Uid); btnCancel.SetResourceReference(Button.BackgroundProperty, "ButtonBrush"); panelButtons.Children.Add(btnCancel); this.Content = contentPanel; double fareprice = currency == null ? this.AirlinerClass.FarePrice : this.AirlinerClass.FarePrice * currency.Rate; txtPrice.Text = String.Format("{0:0.##}", fareprice); cbSeating.SelectedItem = this.AirlinerClass.Seating; }
//creates the panel for a new route private void createRoutePanel() { panelRouteInfo.Children.Clear(); ListBox lbRouteInfo = new ListBox(); lbRouteInfo.ItemContainerStyleSelector = new ListBoxItemStyleSelector(); lbRouteInfo.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem"); panelRouteInfo.Children.Add(lbRouteInfo); WrapPanel panelDestination1 = new WrapPanel(); cbDestination1 = createDestinationComboBox(); panelDestination1.Children.Add(cbDestination1); txtDestination1Gates = new TextBlock(); txtDestination1Gates.Margin = new Thickness(5, 0, 0, 0); txtDestination1Gates.VerticalAlignment = System.Windows.VerticalAlignment.Bottom; panelDestination1.Children.Add(txtDestination1Gates); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelNewRoute", "202"), panelDestination1)); WrapPanel panelDestination2 = new WrapPanel(); cbDestination2 = createDestinationComboBox(); panelDestination2.Children.Add(cbDestination2); txtDestination2Gates = new TextBlock(); txtDestination2Gates.Margin = new Thickness(5, 0, 0, 0); txtDestination2Gates.VerticalAlignment = System.Windows.VerticalAlignment.Bottom; panelDestination2.Children.Add(txtDestination2Gates); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelNewRoute", "203"), panelDestination2)); ucStopover1 = new ucStopover(); ucStopover1.ValueChanged += ucStopover_OnValueChanged; lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelNewRoute", "1003"), ucStopover1)); ucStopover2 = new ucStopover(); ucStopover2.ValueChanged += ucStopover_OnValueChanged; lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelNewRoute", "1003"), ucStopover2)); txtRoute = UICreator.CreateTextBlock(""); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelNewRoute", "1004"), txtRoute)); txtDistance = UICreator.CreateTextBlock("-"); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelNewRoute", "204"), txtDistance)); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelNewRoute", "205"), UICreator.CreateTextBlock(string.Format("{0:0} {1}", new NumberToUnitConverter().Convert(this.MaxDistance), new StringToLanguageConverter().Convert("km."))))); if (this.RouteType == Route.RouteType.Mixed || this.RouteType == Route.RouteType.Passenger) { this.Classes.Clear(); foreach (AirlinerClass.ClassType type in Enum.GetValues(typeof(AirlinerClass.ClassType))) { RouteAirlinerClass rClass = new RouteAirlinerClass(type, RouteAirlinerClass.SeatingType.Reserved_Seating, 1); foreach (RouteFacility.FacilityType ftype in Enum.GetValues(typeof(RouteFacility.FacilityType))) { if (GameObject.GetInstance().GameTime.Year >= (int)ftype) { rClass.addFacility(RouteFacilities.GetBasicFacility(ftype)); } } this.Classes.Add(type, rClass); WrapPanel panelClassButtons = new WrapPanel(); Button btnEdit = new Button(); btnEdit.Background = Brushes.Transparent; btnEdit.Tag = type; btnEdit.Click += new RoutedEventHandler(btnEdit_Click); Image imgEdit = new Image(); imgEdit.Width = 16; imgEdit.Source = new BitmapImage(new Uri(@"/Data/images/edit.png", UriKind.RelativeOrAbsolute)); RenderOptions.SetBitmapScalingMode(imgEdit, BitmapScalingMode.HighQuality); btnEdit.Content = imgEdit; panelClassButtons.Children.Add(btnEdit); Image imgInfo = new Image(); imgInfo.Width = 16; imgInfo.Source = new BitmapImage(new Uri(@"/Data/images/info.png", UriKind.RelativeOrAbsolute)); imgInfo.Margin = new Thickness(5, 0, 0, 0); imgInfo.VerticalAlignment = System.Windows.VerticalAlignment.Bottom; RenderOptions.SetBitmapScalingMode(imgInfo, BitmapScalingMode.HighQuality); Border brdToolTip = new Border(); brdToolTip.Margin = new Thickness(-4, 0, -4, -3); brdToolTip.Padding = new Thickness(5); brdToolTip.SetResourceReference(Border.BackgroundProperty, "HeaderBackgroundBrush2"); ContentControl lblClass = new ContentControl(); lblClass.SetResourceReference(ContentControl.ContentTemplateProperty, "RouteAirlinerClassItem"); lblClass.Content = rClass; brdToolTip.Child = lblClass; imgInfo.ToolTip = brdToolTip; panelClassButtons.Children.Add(imgInfo); lbRouteInfo.Items.Add(new QuickInfoValue(new TextUnderscoreConverter().Convert(type, null, null, null).ToString(), panelClassButtons)); } } if (this.RouteType == Route.RouteType.Mixed || this.RouteType == Route.RouteType.Cargo) { WrapPanel panelCargo = new WrapPanel(); txtCargo = UICreator.CreateTextBlock(new ValueCurrencyConverter().Convert(this.CargoPrice).ToString()); txtCargo.VerticalAlignment = System.Windows.VerticalAlignment.Bottom; panelCargo.Children.Add(txtCargo); Button btnEditCargo = new Button(); btnEditCargo.Margin = new Thickness(5, 0, 0, 0); btnEditCargo.Background = Brushes.Transparent; btnEditCargo.Click += new RoutedEventHandler(btnEditCargo_Click); Image imgEdit = new Image(); imgEdit.Width = 16; imgEdit.Source = new BitmapImage(new Uri(@"/Data/images/edit.png", UriKind.RelativeOrAbsolute)); RenderOptions.SetBitmapScalingMode(imgEdit, BitmapScalingMode.HighQuality); btnEditCargo.Content = imgEdit; panelCargo.Children.Add(btnEditCargo); lbRouteInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelNewRoute", "1007"), panelCargo)); } txtInvalidRoute = UICreator.CreateTextBlock(Translator.GetInstance().GetString("PanelNewRoute", "1001")); txtInvalidRoute.Foreground = Brushes.DarkRed; txtInvalidRoute.Visibility = System.Windows.Visibility.Collapsed; panelRouteInfo.Children.Add(txtInvalidRoute); WrapPanel panelButtons = new WrapPanel(); panelButtons.Margin = new Thickness(0, 5, 0, 0); panelRouteInfo.Children.Add(panelButtons); btnSave = new Button(); btnSave.SetResourceReference(Button.StyleProperty, "RoundedButton"); btnSave.Height = Double.NaN; btnSave.Width = Double.NaN; btnSave.Content = Translator.GetInstance().GetString("General", "113"); btnSave.SetResourceReference(Button.BackgroundProperty, "ButtonBrush"); btnSave.Click += new RoutedEventHandler(btnSave_Click); btnSave.IsEnabled = false; panelButtons.Children.Add(btnSave); btnLoad = new Button(); btnLoad.SetResourceReference(Button.StyleProperty, "RoundedButton"); btnLoad.Height = Double.NaN; btnLoad.Width = Double.NaN; btnLoad.Content = Translator.GetInstance().GetString("General", "115"); btnLoad.SetResourceReference(Button.BackgroundProperty, "ButtonBrush"); btnLoad.IsEnabled = false; btnLoad.Click += new RoutedEventHandler(btnLoad_Click); btnLoad.Margin = new Thickness(5, 0, 0, 0); btnLoad.Visibility = this.RouteType == Route.RouteType.Cargo ? Visibility.Collapsed : Visibility.Visible; panelButtons.Children.Add(btnLoad); }