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;
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
            }
        }
Beispiel #4
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);
        }
Beispiel #6
0
        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("");
            }
        }
Beispiel #7
0
        //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);
        }
Beispiel #8
0
        //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);
                }
            }
        }
Beispiel #9
0
        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;
        }
Beispiel #10
0
        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();
        }
Beispiel #11
0
        //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;
        }
Beispiel #13
0
        //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);
        }