private void btnMoveAirliner_Click(object sender, RoutedEventArgs e)
        {
            var airliner = (FleetAirliner)((Button)sender).Tag;

            ComboBox cbAirlines = new ComboBox();
            cbAirlines.SetResourceReference(StyleProperty, "ComboBoxTransparentStyle");
            cbAirlines.ItemTemplate = Application.Current.Resources["AirlineItem"] as DataTemplate;
            cbAirlines.HorizontalAlignment = HorizontalAlignment.Left;
            cbAirlines.Width = 200;

            if (Airline.Airline.Subsidiaries.Count > 0)
                foreach (SubsidiaryAirline sAirline in Airline.Airline.Subsidiaries)
                    cbAirlines.Items.Add(sAirline);
            else
                cbAirlines.Items.Add(((SubsidiaryAirline)Airline.Airline).Airline);

            cbAirlines.SelectedIndex = 0;

            if (
                PopUpSingleElement.ShowPopUp(
                    Translator.GetInstance().GetString("PageAirlineFleet", "1016"),
                    cbAirlines) == PopUpSingleElement.ButtonSelected.OK && cbAirlines.SelectedItem != null)
            {
                var airline = cbAirlines.SelectedItem as Airline;

                Airline.moveAirliner(airliner, airline);
            }
        }
        public PopUpAirlinerFacility(AirlinerClass airlinerClass, AirlinerFacility.FacilityType type)
        {
            InitializeComponent();

            this.AirlinerClass = airlinerClass;
            this.Type = type;

            this.Title = "Select " + type.ToString().ToLower();

            this.Width = 400;

            this.Height = 120;

            this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

            StackPanel mainPanel = new StackPanel();
            mainPanel.Margin = new Thickness(10, 10, 10, 10);

            cbFacility = new ComboBox();
            cbFacility.ItemTemplate = this.Resources["AirlinerFacilityItem"] as DataTemplate;
            cbFacility.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");

            foreach (AirlinerFacility facility in AirlinerFacilities.GetFacilities(this.Type,GameObject.GetInstance().GameTime.Year))
                cbFacility.Items.Add(facility);

            cbFacility.SelectedItem = this.AirlinerClass.getFacility(this.Type);

            mainPanel.Children.Add(cbFacility);

            mainPanel.Children.Add(createButtonsPanel());

            this.Content = mainPanel;
               // int serviceLevel, double percentOfSeats, double pricePerSeat
        }
        private void btnBuyAircraft_Click(object sender, RoutedEventArgs e)
        {
            ComboBox cbAircraft = new ComboBox();
            cbAircraft.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAircraft.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbAircraft.ItemTemplate = this.Resources["TrainingAircraftTypeItem"] as DataTemplate;
            cbAircraft.Width = 300;

            foreach (TrainingAircraftType type in TrainingAircraftTypes.GetAircraftTypes().FindAll(t => GeneralHelpers.GetInflationPrice(t.Price) < GameObject.GetInstance().HumanAirline.Money))
                cbAircraft.Items.Add(type);

            cbAircraft.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PageShowFlightSchool", "1014"), cbAircraft) == PopUpSingleElement.ButtonSelected.OK && cbAircraft.SelectedItem != null)
            {

                TrainingAircraftType aircraft = (TrainingAircraftType)cbAircraft.SelectedItem;
                double price = aircraft.Price;

                this.FlightSchool.addTrainingAircraft(new TrainingAircraft(aircraft, GameObject.GetInstance().GameTime, this.FlightSchool.FlightSchool));

                AirlineHelpers.AddAirlineInvoice(GameObject.GetInstance().HumanAirline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Airline_Expenses, -price);

                setHireStudentsStatus();

            }
        }
        public PopUpBuildRunway(Airport airport)
        {
            this.Airport = airport;
            InitializeComponent();

            this.Uid = "1000";

            this.Title = Translator.GetInstance().GetString("PopUpBuildRunway", this.Uid);

            this.Width = 400;

            this.Height = 210;

            this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

            StackPanel mainPanel = new StackPanel();
            mainPanel.Margin = new Thickness(10, 10, 10, 10);

            ListBox lbContent = new ListBox();
            lbContent.ItemContainerStyleSelector = new ListBoxItemStyleSelector();
            lbContent.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem");
            mainPanel.Children.Add(lbContent);

            txtName = new TextBox();
            txtName.Width = 200;
            txtName.Background = Brushes.Transparent;
            txtName.TextChanged += new TextChangedEventHandler(txtName_TextChanged);

            lbContent.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PopUpBuildRunway", "1001"), txtName));

            cbSurface = new ComboBox();
            cbSurface.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbSurface.Width = 100;
            cbSurface.SelectedIndex = 0;

            foreach (Runway.SurfaceType surface in this.Airport.Runways.Select(r => r.Surface).Distinct())
                cbSurface.Items.Add(surface);

            lbContent.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PopUpBuildRunway", "1002"), cbSurface));

            cbLenght = new ComboBox();
            cbLenght.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbLenght.Width = 100;
            //cbLenght.ItemStringFormat = new NumberMeterToUnitConverter().Convert("{0}").ToString();
            cbLenght.SelectedIndex = 0;

            for (int i = 1500; i < 4500; i += 250)
                cbLenght.Items.Add(i);

            lbContent.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PopUpBuildRunway", "1003"), cbLenght));

            mainPanel.Children.Add(createButtonsPanel());

            this.Content = mainPanel;
        }
        private void btnAddClass_Click(object sender, RoutedEventArgs e)
        {
            ComboBox cbClasses = new ComboBox();
            cbClasses.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbClasses.ItemTemplate = this.Resources["AirlinerClassItem"] as DataTemplate;
            cbClasses.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbClasses.Width = 200;

            foreach (AirlinerClass.ClassType type in Enum.GetValues(typeof(AirlinerClass.ClassType)))
            {
                Boolean hasClass = this.Airliner.Classes.ToList().Exists(c => c.Type == type);
                if ((int)type <= GameObject.GetInstance().GameTime.Year && !hasClass)
                {
                    cbClasses.Items.Add(type);
                }
            }

            cbClasses.SelectedIndex = 0;

            AirlinerClassMVVM tClass = this.Airliner.Classes[0];

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PageFleetAirlinerInformation", "1011"), cbClasses) == PopUpSingleElement.ButtonSelected.OK && cbClasses.SelectedItem != null)
            {
                int maxseats;

                int maxCapacity;

                if (this.Airliner.Airliner.Airliner.Type.TypeAirliner == AirlinerType.TypeOfAirliner.Passenger)
                    maxCapacity = ((AirlinerPassengerType)this.Airliner.Airliner.Airliner.Type).MaxSeatingCapacity;
                else
                    maxCapacity = tClass.RegularSeatingCapacity;

                if (this.Airliner.Classes.Count == 2)
                    maxseats =maxCapacity - 1 - this.Airliner.Classes[1].RegularSeatingCapacity;
                else
                    maxseats = maxCapacity - 1;

                AirlinerClassMVVM aClass = new AirlinerClassMVVM(new AirlinerClass((AirlinerClass.ClassType)cbClasses.SelectedItem,0), 1, 1, maxseats, true);

                foreach (AirlinerFacilityMVVM aFacility in aClass.Facilities)
                {
                    var facility = AirlinerFacilities.GetBasicFacility(aFacility.Type);
                    aFacility.SelectedFacility = facility;
                }

                this.Airliner.Classes.Add(aClass);

                tClass.RegularSeatingCapacity -= aClass.RegularSeatingCapacity;

                tClass.Seating = Convert.ToInt16(Convert.ToDouble(tClass.RegularSeatingCapacity) / tClass.Facilities.Where(f => f.Type == AirlinerFacility.FacilityType.Seat).First().SelectedFacility.SeatUses);

            }
        }
        public PopUpNewAirlinerHomebase(FleetAirliner airliner)
        {
            this.Airliner = airliner;

            this.Title = string.Format("Select new homebase for {0}", airliner.Name);

            this.Width = 300;

            this.Height = 100;

            this.WindowStartupLocation = WindowStartupLocation.CenterScreen;

            this.WindowStyle = WindowStyle.SingleBorderWindow;

            StackPanel mainPanel = new StackPanel();
            mainPanel.Margin = new Thickness(10, 10, 10, 10);
            cbAirport = new ComboBox();
            cbAirport.SetResourceReference(ComboBox.ItemTemplateProperty, "AirportCountryItem");
            cbAirport.SetResourceReference(StyleProperty, "ComboBoxTransparentStyle");
            cbAirport.IsSynchronizedWithCurrentItem = true;
            cbAirport.HorizontalAlignment = HorizontalAlignment.Left;

            List<Airport> airports = this.Airliner.Airliner.Airline.Airports.FindAll(a => (a.GetCurrentAirportFacility(this.Airliner.Airliner.Airline, AirportFacility.FacilityType.Service).TypeLevel > 0 || a.HasContractType(this.Airliner.Airliner.Airline,AirportContract.ContractType.FullService)) && a.Profile.Period.From <= GameObject.GetInstance().GameTime && a.Profile.Period.To > GameObject.GetInstance().GameTime);

            if (airports.Count == 0)
                airports = this.Airliner.Airliner.Airline.Airports.FindAll(a => a.Profile.Period.From <= GameObject.GetInstance().GameTime && a.Profile.Period.To > GameObject.GetInstance().GameTime);

            airports.Sort(delegate(Airport a1, Airport a2) { return a1.Profile.Name.CompareTo(a2.Profile.Name); });

            foreach (Airport airport in airports)
                cbAirport.Items.Add(airport);

            cbAirport.SelectedIndex = 0;

            mainPanel.Children.Add(cbAirport);

            mainPanel.Children.Add(createButtonsPanel());

            this.Content = mainPanel;
        }
        private void btnBuild_Click(object sender, RoutedEventArgs e)
        {
            double price = GeneralHelpers.GetInflationPrice(267050);

            var cbAirport = new ComboBox();
            cbAirport.SetResourceReference(StyleProperty, "ComboBoxTransparentStyle");
            cbAirport.Width = 200;
            cbAirport.SelectedValuePath = "Profile.Town.Name";
            cbAirport.DisplayMemberPath = "Profile.Town.Name";
            cbAirport.HorizontalAlignment = HorizontalAlignment.Left;

            List<Airport> homeAirports =
                GameObject.GetInstance()
                    .HumanAirline.Airports.FindAll(
                        a =>
                            a.GetCurrentAirportFacility(
                                GameObject.GetInstance().HumanAirline,
                                AirportFacility.FacilityType.Service).TypeLevel > 0);
            homeAirports.AddRange(GameObject.GetInstance().HumanAirline.Airports.FindAll(a => a.IsHub)); //hubs
            homeAirports = homeAirports.Distinct().ToList();

            foreach (Airport airport in homeAirports)
            {
                if (GameObject.GetInstance().HumanAirline.FlightSchools.Find(f => f.Airport == airport) == null)
                {
                    cbAirport.Items.Add(airport);
                }
            }

            cbAirport.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PagePilots", "1004"), cbAirport)
                == PopUpSingleElement.ButtonSelected.OK && cbAirport.SelectedItem != null)
            {
                var airport = (Airport)cbAirport.SelectedItem;

                var fs = new FlightSchool(airport);

                GameObject.GetInstance().HumanAirline.AddFlightSchool(fs);
                FlightSchools.Add(fs);

                AirlineHelpers.AddAirlineInvoice(
                    GameObject.GetInstance().HumanAirline,
                    GameObject.GetInstance().GameTime,
                    Invoice.InvoiceType.AirlineExpenses,
                    -price);

                ICollectionView view = CollectionViewSource.GetDefaultView(lvInstructors.ItemsSource);
                view.Refresh();
            }
        }
Esempio n. 8
0
        public PopUpHomeBase(FleetAirliner airliner)
        {
            this.Airliner = airliner;

            this.Title = "Select New Homebase";

            this.Width = 300;

            this.Height = 100;

            this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

            this.WindowStyle = System.Windows.WindowStyle.None;

            StackPanel mainPanel = new StackPanel();
            mainPanel.Margin = new Thickness(10, 10, 10, 10);
            cbAirport = new ComboBox();
            cbAirport.SetResourceReference(ComboBox.ItemTemplateProperty, "AirportCountryItem");
            cbAirport.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAirport.IsSynchronizedWithCurrentItem = true;
            cbAirport.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;

            List<Airport> airports = this.Airliner.Airliner.Airline.Airports.FindAll((delegate(Airport airport) { return airport.getCurrentAirportFacility(this.Airliner.Airliner.Airline,AirportFacility.FacilityType.Service).TypeLevel>0; }));
            airports.Sort(delegate(Airport a1, Airport a2) { return a1.Profile.Name.CompareTo(a2.Profile.Name); });

            foreach (Airport airport in airports)
                cbAirport.Items.Add(airport);

            cbAirport.SelectedItem = this.Airliner.Homebase;

            mainPanel.Children.Add(cbAirport);

            mainPanel.Children.Add(createButtonsPanel());

            this.Content = mainPanel;
        }
        public PopUpAirportSlot(Airport airport)
        {
            this.Airport = airport;

            InitializeComponent();

            this.Title = this.Airport.Profile.Name;

            this.Width = 800;

            this.Height = 400;

            this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

            StackPanel panelMain = new StackPanel();

            WrapPanel panelDay = new WrapPanel();

            TextBlock txtDay = UICreator.CreateTextBlock("Day: ");
            //txtDay.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
            txtDay.FontWeight = FontWeights.Bold;

            panelDay.Children.Add(txtDay);

            ComboBox cbDay = new ComboBox();
            cbDay.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbDay.Width = 100;
            cbDay.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
            cbDay.Margin = new Thickness(0, 0, 0, 10);
            cbDay.SelectionChanged += new SelectionChangedEventHandler(cbDay_SelectionChanged);
            cbDay.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;

            foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek)))
                cbDay.Items.Add(day);

            panelDay.Children.Add(cbDay);

            panelMain.Children.Add(panelDay);

            panelSlot = new StackPanel();
            panelMain.Children.Add(panelSlot);

            cbDay.SelectedIndex = 0;

            this.Content = panelMain;
        }
        private void btnHire_Click(object sender, RoutedEventArgs e)
        {
            var pilot = (Pilot)((Button)sender).Tag;

            WPFMessageBoxResult result = WPFMessageBox.Show(
                Translator.GetInstance().GetString("MessageBox", "2801"),
                Translator.GetInstance().GetString("MessageBox", "2801", "message"),
                WPFMessageBoxButtons.YesNo);

            if (result == WPFMessageBoxResult.Yes)
            {
                GameObject.GetInstance().HumanAirline.AddPilot(pilot);

                AllPilots.Remove(pilot);

                IEnumerable<FleetAirliner> fleetMissingPilots =
                    GameObject.GetInstance().HumanAirline.Fleet.Where(f => f.Pilots.Count < f.Airliner.Type.CockpitCrew && pilot.Aircrafts.Exists(a=>f.Airliner.Type.AirlinerFamily == a));

                if (fleetMissingPilots.Count() > 0)
                {
                    var cbAirliners = new ComboBox();
                    cbAirliners.SetResourceReference(StyleProperty, "ComboBoxTransparentStyle");
                    cbAirliners.Width = 200;
                    cbAirliners.HorizontalAlignment = HorizontalAlignment.Left;
                    cbAirliners.ItemTemplate = Resources["pilotAirlinerItem"] as DataTemplate;

                    foreach (FleetAirliner airliner in fleetMissingPilots)
                    {
                        cbAirliners.Items.Add(airliner);
                    }

                    cbAirliners.SelectedIndex = 0;

                    if (PopUpSingleElement.ShowPopUp(
                        Translator.GetInstance().GetString("PagePilots", "1010"),
                        cbAirliners) == PopUpSingleElement.ButtonSelected.OK && cbAirliners.SelectedItem != null)
                    {
                        var airliner = (FleetAirliner)cbAirliners.SelectedItem;

                        airliner.AddPilot(pilot);
                    }
                }
            }
        }
Esempio n. 11
0
        private void btnHire_Click(object sender, RoutedEventArgs e)
        {
            Pilot pilot = (Pilot)((Button)sender).Tag;

            WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2801"), Translator.GetInstance().GetString("MessageBox", "2801", "message"), WPFMessageBoxButtons.YesNo);

            if (result == WPFMessageBoxResult.Yes)
            {
                GameObject.GetInstance().HumanAirline.addPilot(pilot);

                this.AllPilots.Remove(pilot);

                var fleetMissingPilots = GameObject.GetInstance().HumanAirline.Fleet.Where(f=>f.Pilots.Count < f.Airliner.Type.CockpitCrew);

                if (fleetMissingPilots.Count() > 0)
                {
                    ComboBox cbAirliners = new ComboBox();
                    cbAirliners.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
                    cbAirliners.Width = 200;
                    cbAirliners.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                    cbAirliners.DisplayMemberPath = "Name";
                    cbAirliners.SelectedValuePath = "Name";

                    foreach (FleetAirliner airliner in fleetMissingPilots)
                        cbAirliners.Items.Add(airliner);

                    cbAirliners.SelectedIndex = 0;

                    if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PagePilots", "1010"), cbAirliners) == PopUpSingleElement.ButtonSelected.OK && cbAirliners.SelectedItem != null)
                    {
                        FleetAirliner airliner = (FleetAirliner)cbAirliners.SelectedItem;

                        airliner.addPilot(pilot);
                    }
                }
            }
        }
        //creates the panel to transfer funds between airlines
        private StackPanel createTransferFundsPanel()
        {
            panelTransferFunds = new StackPanel();
            panelTransferFunds.Margin = new Thickness(0, 5, 0, 0);
            panelTransferFunds.Visibility = this.Airline.Subsidiaries.Count > 0 ? Visibility.Visible : System.Windows.Visibility.Collapsed;

            TextBlock txtHeader = new TextBlock();
            txtHeader.Uid = "1002";
            txtHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
            txtHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush2");
            txtHeader.FontWeight = FontWeights.Bold;
            txtHeader.Text = Translator.GetInstance().GetString("PageAirlineSubsidiaries", txtHeader.Uid);

            panelTransferFunds.Children.Add(txtHeader);

            WrapPanel panelTransferAirlines = new WrapPanel();
            panelTransferAirlines.Margin = new Thickness(0, 5, 0, 0);
            panelTransferFunds.Children.Add(panelTransferAirlines);

            cbAirlineFrom = new ComboBox();
            cbAirlineFrom.SelectionChanged += cbAirlineFrom_SelectionChanged;
            cbAirlineFrom.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAirlineFrom.SetResourceReference(ComboBox.ItemTemplateProperty, "AirlineLogoItem");
            cbAirlineFrom.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbAirlineFrom.Width = 200;

            cbAirlineFrom.Items.Add(GameObject.GetInstance().MainAirline);

            foreach (Airline airline in GameObject.GetInstance().MainAirline.Subsidiaries)
                cbAirlineFrom.Items.Add(airline);

            panelTransferAirlines.Children.Add(cbAirlineFrom);

            panelTransferAirlines.Children.Add(UICreator.CreateTextBlock("->"));

            cbAirlineTo = new ComboBox();
            cbAirlineTo.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAirlineTo.SetResourceReference(ComboBox.ItemTemplateProperty, "AirlineLogoItem");
            cbAirlineTo.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbAirlineTo.Width = 200;

            cbAirlineTo.Items.Add(GameObject.GetInstance().MainAirline);

            foreach (Airline airline in GameObject.GetInstance().MainAirline.Subsidiaries)
                cbAirlineTo.Items.Add(airline);

            cbAirlineTo.SelectedItem = GameObject.GetInstance().HumanAirline;

            panelTransferAirlines.Children.Add(cbAirlineTo);

            panelTransferFunds.Children.Add(createMoneySlider());

            Button btnTransferFunds = new Button();
            btnTransferFunds.Uid = "201";
            btnTransferFunds.SetResourceReference(Button.StyleProperty, "RoundedButton");
            btnTransferFunds.Height = Double.NaN;
            btnTransferFunds.Width = Double.NaN;
            btnTransferFunds.Content = Translator.GetInstance().GetString("PageAirlineSubsidiaries", btnTransferFunds.Uid);
            btnTransferFunds.SetResourceReference(Button.BackgroundProperty, "ButtonBrush");
            btnTransferFunds.Margin = new Thickness(0, 5, 0, 0);
            btnTransferFunds.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            btnTransferFunds.Click += btnTransferFunds_Click;

            panelTransferFunds.Children.Add(btnTransferFunds);

            cbAirlineFrom.SelectedItem = GameObject.GetInstance().HumanAirline;

            return panelTransferFunds;
        }
        //creates the panel for the human controlling airline
        private StackPanel createHumanControllingPanel()
        {
            StackPanel panelMain = new StackPanel();
            panelMain.Margin = new Thickness(5, 5, 10, 0);

            TextBlock txtHeader = new TextBlock();
            txtHeader.Uid = "1020";
            txtHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
            txtHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush");
            txtHeader.TextAlignment = TextAlignment.Left;
            txtHeader.FontWeight = FontWeights.Bold;
            txtHeader.Text = Translator.GetInstance().GetString("PageAirline", txtHeader.Uid);

            panelMain.Children.Add(txtHeader);

            WrapPanel panelChangeControl = new WrapPanel();

            panelMain.Children.Add(panelChangeControl);

            cbControlling = new ComboBox();
            cbControlling.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbControlling.SetResourceReference(ComboBox.ItemTemplateProperty, "AirlineLogoItem");
            cbControlling.Width = 250;
            cbControlling.Items.Add(GameObject.GetInstance().MainAirline);

            foreach (Airline airline in GameObject.GetInstance().MainAirline.Subsidiaries)
                cbControlling.Items.Add(airline);

            cbControlling.SelectedItem = GameObject.GetInstance().HumanAirline;

            panelChangeControl.Children.Add(cbControlling);

            btnOk = new Button();
            btnOk.Uid = "116";
            btnOk.SetResourceReference(Button.StyleProperty, "RoundedButton");
            btnOk.Height = Double.NaN;
            btnOk.Width = Double.NaN;
            btnOk.Content = Translator.GetInstance().GetString("General", btnOk.Uid);
            btnOk.IsEnabled = cbControlling.Items.Count > 1;
            btnOk.SetResourceReference(Button.BackgroundProperty, "ButtonBrush");
            btnOk.Margin = new Thickness(5, 0, 0, 0);
            btnOk.Click += new RoutedEventHandler(btnOk_Click);

            panelChangeControl.Children.Add(btnOk);

            return panelMain;
        }
        public PageSearchAirports(PageAirports parent)
        {
            InitializeComponent();

            this.ParentPage = parent;

            StackPanel panelSearch = new StackPanel();
            panelSearch.Margin = new Thickness(0, 10, 50, 0);

            TextBlock txtHeader = new TextBlock();
            txtHeader.Uid = "1001";
            txtHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
            txtHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush2");
            txtHeader.FontWeight = FontWeights.Bold;
            txtHeader.Text = Translator.GetInstance().GetString("PageSearchAirports", txtHeader.Uid);

            panelSearch.Children.Add(txtHeader);

            ListBox lbSearch = new ListBox();
            lbSearch.ItemContainerStyleSelector = new ListBoxItemStyleSelector();
            lbSearch.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem");
            panelSearch.Children.Add(lbSearch);

            WrapPanel panelCheckBoxes = new WrapPanel();
            lbSearch.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSearchAirports","1004"), panelCheckBoxes));

            cbHumanAirports = new CheckBox();
            cbHumanAirports.Uid = "1002";
            cbHumanAirports.Content = Translator.GetInstance().GetString("PageSearchAirports", cbHumanAirports.Uid);
            cbHumanAirports.IsChecked = false;
            cbHumanAirports.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbHumanAirports.FlowDirection = System.Windows.FlowDirection.RightToLeft;

            panelCheckBoxes.Children.Add(cbHumanAirports);

            cbHubs = new CheckBox();
            cbHubs.Uid = "1003";
            cbHubs.Content = Translator.GetInstance().GetString("PageSearchAirports", cbHubs.Uid);
            cbHubs.IsChecked = false;
            cbHubs.FlowDirection = System.Windows.FlowDirection.RightToLeft;
            cbHubs.Margin = new Thickness(5, 0, 0, 0);

            panelCheckBoxes.Children.Add(cbHubs);

            cbRegion = new ComboBox();
            cbRegion.DisplayMemberPath = "Name";
            cbRegion.SelectedValuePath = "Name";
            cbRegion.Width = 250;
            cbRegion.Background = Brushes.Transparent;
            cbRegion.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbRegion.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbRegion.SelectionChanged += new SelectionChangedEventHandler(cbRegions_SelectionChanged);

            List<Region> regions = Regions.GetRegions();
            regions.Sort(delegate(Region r1, Region r2){return r1.Name.CompareTo(r2.Name);});

            // 100 is the predefined Uid for "All Regions"
            Region regionAll = Regions.GetRegion("100");
            cbRegion.Items.Add(regionAll);

            foreach (Region region in regions)
                cbRegion.Items.Add(region);

            lbSearch.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSearchAirports", "1005"), cbRegion));

            cbCountry = new ComboBox();
            cbCountry.SetResourceReference(ComboBox.ItemTemplateProperty, "CountryFlagLongItem");
            cbCountry.Width = 250;
            //cbCountries.Style = this.Resources["ComboBoxStyle"] as Style;
            cbCountry.Background = Brushes.Transparent;
            cbCountry.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbCountry.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;

            List<Country> countries = Countries.GetCountries();
            countries.Sort(delegate(Country c1, Country c2) { return c1.Name.CompareTo(c2.Name); });

            // 100 is the predefined Uid for "All Countries"
            Country countryAll = Countries.GetCountry("100");
            cbCountry.Items.Add(countryAll);

            foreach (Country country in countries)
                cbCountry.Items.Add(country);

            cbCountry.SelectedItem = countryAll;
            cbRegion.SelectedItem = regionAll;

            lbSearch.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSearchAirports", "1006"), cbCountry));

            WrapPanel panelSizes = new WrapPanel();

            cbCompareSize = new ComboBox();
            createCompareComboBox(cbCompareSize);
            panelSizes.Children.Add(cbCompareSize);

            cbSize = new ComboBox();
            cbSize.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbSize.Background = Brushes.Transparent;
            cbSize.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbSize.SetResourceReference(ComboBox.ItemTemplateProperty, "TextUnderscoreTextBlock");
            cbSize.Width = 100;

            foreach (GeneralHelpers.Size type in Enum.GetValues(typeof(GeneralHelpers.Size)))
                cbSize.Items.Add(type);

            cbSize.SelectedIndex = 0;

            panelSizes.Children.Add(cbSize);

            lbSearch.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSearchAirports", "1007"), panelSizes));

            txtTextSearch = new TextBox();
            txtTextSearch.Width = 300;
            txtTextSearch.Background = Brushes.Transparent;
            txtTextSearch.Foreground = Brushes.White;
            txtTextSearch.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;

            lbSearch.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSearchAirports", "1008"), txtTextSearch));

            WrapPanel panelButtons = new WrapPanel();
            panelButtons.Margin = new Thickness(0, 5, 0, 0);
            panelButtons.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;

            panelSearch.Children.Add(panelButtons);

            Button btnSearch = new Button();
            btnSearch.Uid = "109";
            btnSearch.SetResourceReference(Button.StyleProperty, "RoundedButton");
            btnSearch.Height = Double.NaN;
            btnSearch.Width = Double.NaN;
            btnSearch.IsDefault = true;
            btnSearch.Content = Translator.GetInstance().GetString("General", btnSearch.Uid);
            btnSearch.SetResourceReference(Button.BackgroundProperty, "ButtonBrush");
            btnSearch.Click += new RoutedEventHandler(btnSearch_Click);

            panelButtons.Children.Add(btnSearch);

            Button btnClear = new Button();
            btnClear.Uid = "110";
            btnClear.SetResourceReference(Button.StyleProperty, "RoundedButton");
            btnClear.Width = Double.NaN;
            btnClear.Height = Double.NaN;
            btnClear.Margin = new Thickness(10, 0, 0, 0);
            btnClear.Content = Translator.GetInstance().GetString("General", btnClear.Uid);
            btnClear.SetResourceReference(Button.BackgroundProperty, "ButtonBrush");
            btnClear.Click += new RoutedEventHandler(btnClear_Click);

            panelButtons.Children.Add(btnClear);

            this.Content = panelSearch;
        }
        private void btnEditOwner_Click(object sender, RoutedEventArgs e)
        {
            ComboBox cbAirlines = new ComboBox();
            cbAirlines.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAirlines.SetResourceReference(ComboBox.ItemTemplateProperty, "AirlineLogoItem");
            cbAirlines.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbAirlines.Width = 200;

            cbAirlines.Items.Add(GameObject.GetInstance().MainAirline);

            foreach (SubsidiaryAirline airline in GameObject.GetInstance().MainAirline.Subsidiaries)
                cbAirlines.Items.Add(airline);

            cbAirlines.Items.Remove(this.Airliner.Airliner.Airline);

            cbAirlines.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PageFleetAirliner", "1028"), cbAirlines) == PopUpSingleElement.ButtonSelected.OK && cbAirlines.SelectedItem != null)
            {
                Airline airline = (Airline)cbAirlines.SelectedItem;

                this.Airliner.Airliner.Airline.removeAirliner(this.Airliner);
                airline.addAirliner(this.Airliner);
                this.Airliner.Airliner.Airline = airline;

                PageNavigator.NavigateTo(new PageFleetAirliner(this.Airliner));
            }
        }
        //creates the panel for auto generation of time table from a route
        private WrapPanel createAutoGeneratePanel()
        {
            WrapPanel autogeneratePanel = new WrapPanel();

            cbRegion = new ComboBox();
            cbRegion.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbRegion.Width = 150;
            cbRegion.DisplayMemberPath = "Name";
            cbRegion.SelectedValuePath = "Name";
            cbRegion.SelectionChanged += cbRegion_SelectionChanged;
            cbRegion.Items.Add(Regions.GetRegion("100"));

            List<Region> regions = GameObject.GetInstance().HumanAirline.Routes.Where(r => r.Destination1.Profile.Country.Region == r.Destination2.Profile.Country.Region).Select(r => r.Destination1.Profile.Country.Region).ToList();
            regions.AddRange(GameObject.GetInstance().HumanAirline.Routes.Where(r => r.Destination1.Profile.Country == GameObject.GetInstance().HumanAirline.Profile.Country).Select(r => r.Destination2.Profile.Country.Region));
            regions.AddRange(GameObject.GetInstance().HumanAirline.Routes.Where(r => r.Destination2.Profile.Country == GameObject.GetInstance().HumanAirline.Profile.Country).Select(r => r.Destination1.Profile.Country.Region));

            foreach (Region region in regions.Distinct())
                cbRegion.Items.Add(region);

             autogeneratePanel.Children.Add(cbRegion);

            cbRoute = new ComboBox();
            cbRoute.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbRoute.SelectionChanged += new SelectionChangedEventHandler(cbAutoRoute_SelectionChanged);
            cbRoute.ItemTemplate = this.Resources["RouteItem"] as DataTemplate;

            foreach (Route route in this.Airliner.Airliner.Airline.Routes.FindAll(r => this.Airliner.Airliner.Type.Range > r.getDistance() && !r.Banned))
            {
                cbRoute.Items.Add(route);
            }

            autogeneratePanel.Children.Add(cbRoute);

            cbFlightCode = new ComboBox();
            cbFlightCode.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");

            foreach (string flightCode in this.Airliner.Airliner.Airline.getFlightCodes())
                cbFlightCode.Items.Add(flightCode);

            cbFlightCode.Items.RemoveAt(cbFlightCode.Items.Count - 1);

            cbFlightCode.SelectedIndex = 0;

            autogeneratePanel.Children.Add(cbFlightCode);

            TextBlock txtFlightsPerDay = UICreator.CreateTextBlock("Flights per day");
            txtFlightsPerDay.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
            txtFlightsPerDay.Margin = new Thickness(10, 0, 5, 0);

            autogeneratePanel.Children.Add(txtFlightsPerDay);

            cbFlightsPerDay = new ComboBox();
            cbFlightsPerDay.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");

            //cbRoute.SelectedIndex = 0;

            autogeneratePanel.Children.Add(cbFlightsPerDay);

            cbBusinessRoute = new CheckBox();
            cbBusinessRoute.FlowDirection = System.Windows.FlowDirection.RightToLeft;
            cbBusinessRoute.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
            cbBusinessRoute.Unchecked += cbBusinessRoute_Unchecked;
            cbBusinessRoute.Checked += cbBusinessRoute_Checked;
            cbBusinessRoute.Content = "Business route";
            cbBusinessRoute.Margin = new Thickness(5, 0, 0, 0);

            autogeneratePanel.Children.Add(cbBusinessRoute);

            cbRegion.SelectedIndex = 0;

            return autogeneratePanel;
        }
        private void btnLoadConfiguration_Click(object sender, RoutedEventArgs e)
        {
            var cbConfigurations = new ComboBox();
            cbConfigurations.SetResourceReference(StyleProperty, "ComboBoxTransparentStyle");
            cbConfigurations.SelectedValuePath = "Name";
            cbConfigurations.DisplayMemberPath = "Name";
            cbConfigurations.HorizontalAlignment = HorizontalAlignment.Left;
            cbConfigurations.Width = 200;

            foreach (
                RouteClassesConfiguration confItem in
                    Configurations.GetConfigurations(Configuration.ConfigurationType.Routeclasses))
            {
                cbConfigurations.Items.Add(confItem);
            }

            cbConfigurations.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(
                Translator.GetInstance().GetString("PageAirlineWages", "1013"),
                cbConfigurations) == PopUpSingleElement.ButtonSelected.OK && cbConfigurations.SelectedItem != null)
            {
                foreach (AirlineClassMVVM rClass in Classes)
                {
                    foreach (AirlineClassFacilityMVVM rFacility in rClass.Facilities)
                    {
                        rFacility.SelectedFacility = RouteFacilities.GetBasicFacility(rFacility.Type);
                            //GetFacilities(rFacility.Type).OrderBy(f => f.ServiceLevel).First();
                    }
                }

                var configuration = (RouteClassesConfiguration)cbConfigurations.SelectedItem;

                foreach (RouteClassConfiguration classConfiguration in configuration.GetClasses())
                {
                    foreach (RouteFacility facility in classConfiguration.GetFacilities())
                    {
                        AirlineClassMVVM aClass =
                            Classes.Where(c => c.Type == classConfiguration.Type).FirstOrDefault();

                        if (aClass != null)
                        {
                            AirlineClassFacilityMVVM aFacility =
                                aClass.Facilities.Where(f => f.Type == facility.Type).FirstOrDefault();

                            if (aFacility != null)
                            {
                                aFacility.SelectedFacility = facility;
                            }
                        }
                    }
                }

                btnSave.Visibility = Visibility.Visible;
            }
        }
Esempio n. 18
0
        public PageNewAirline()
        {
            InitializeComponent();

            StackPanel panelContent = new StackPanel();
            panelContent.Margin = new Thickness(10, 0, 10, 0);
            panelContent.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;

            Panel panelLogo = UICreator.CreateGameLogo();
            panelLogo.Margin = new Thickness(0, 0, 0, 20);

            panelContent.Children.Add(panelLogo);

            TextBlock txtHeader = new TextBlock();
            txtHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
            txtHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush2");
            txtHeader.FontWeight = FontWeights.Bold;
            txtHeader.Text = "Airline Profile";
            panelContent.Children.Add(txtHeader);

            ListBox lbContent = new ListBox();
            lbContent.ItemContainerStyleSelector = new ListBoxItemStyleSelector();
            lbContent.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem");
            panelContent.Children.Add(lbContent);

            txtAirlineName = new TextBox();
            txtAirlineName.Background = Brushes.Transparent;
            txtAirlineName.BorderBrush = Brushes.Black;
            txtAirlineName.Width = 200;
            txtAirlineName.TextChanged+=new TextChangedEventHandler(txtIATA_TextChanged);

            lbContent.Items.Add(new QuickInfoValue("Airline Name", txtAirlineName));

            txtIATA = new TextBox();
            txtIATA.Background = Brushes.Transparent;
            txtIATA.BorderBrush = Brushes.Black;
            txtIATA.MaxLength = 2;
            txtIATA.Width = 25;
            txtIATA.TextChanged += new TextChangedEventHandler(txtIATA_TextChanged);

            lbContent.Items.Add(new QuickInfoValue("IATA Code", txtIATA));

            // chs, 2011-20-10 changed to enable loading of logo

            WrapPanel panelAirlinerType = new WrapPanel();

            RadioButton rbPassenger = new RadioButton();
            rbPassenger.Content = "Passenger";
            rbPassenger.GroupName = "AirlineFocus";
            rbPassenger.IsChecked = true;
            rbPassenger.Tag = Route.RouteType.Passenger;
            rbPassenger.Checked += rbAirlineType_Checked;
            rbPassenger.Margin = new Thickness(5, 0, 0, 0);

            panelAirlinerType.Children.Add(rbPassenger);

            RadioButton rbCargo = new RadioButton();
            rbCargo.Content = "Cargo";
            rbCargo.GroupName = "AirlineFocus";
            rbCargo.Tag = Route.RouteType.Cargo;
            rbCargo.Checked += rbAirlineType_Checked;

            panelAirlinerType.Children.Add(rbCargo);

            lbContent.Items.Add(new QuickInfoValue("Airline type", panelAirlinerType));

            WrapPanel panelAirlineLogo = new WrapPanel();

            imgLogo = new Image();
            imgLogo.Source = new BitmapImage(new Uri(logoPath, UriKind.RelativeOrAbsolute));
            imgLogo.Width = 32;
            imgLogo.Margin = new Thickness(0, 0, 5, 0);
            imgLogo.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            RenderOptions.SetBitmapScalingMode(imgLogo, BitmapScalingMode.HighQuality);

            panelAirlineLogo.Children.Add(imgLogo);

            Button btnLogo = new Button();
            btnLogo.Content = "...";
            btnLogo.Background = Brushes.Transparent;
            btnLogo.Click += new RoutedEventHandler(btnLogo_Click);
            btnLogo.Margin = new Thickness(5, 0, 0, 0);

            panelAirlineLogo.Children.Add(btnLogo);

            lbContent.Items.Add(new QuickInfoValue("Airline Logo", panelAirlineLogo));

            cbColor = new ComboBox();
            cbColor.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbColor.Width = 250;
            cbColor.ItemTemplate = this.Resources["ColorItem"] as DataTemplate;

            foreach (PropertyInfo c in typeof(Colors).GetProperties())
                 cbColor.Items.Add(c);

            cbColor.SelectedIndex = 0;

            lbContent.Items.Add(new QuickInfoValue("Airline Color", cbColor));

            cbCountry = new ComboBox();
            cbCountry.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbCountry.SetResourceReference(ComboBox.ItemTemplateProperty, "CountryFlagLongItem");
            cbCountry.Width = 250;

            List<Country> countries = Countries.GetCountries();
            countries.Sort(delegate(Country c1, Country c2) { return c1.Name.CompareTo(c2.Name); });

            foreach (Country country in countries)
                cbCountry.Items.Add(country);

            cbCountry.SelectedItem = Countries.GetCountry("122");

            lbContent.Items.Add(new QuickInfoValue("Country", cbCountry));

            WrapPanel panelButtons = new WrapPanel();
            panelButtons.Margin = new Thickness(0, 5, 0, 0);
            panelContent.Children.Add(panelButtons);

            btnCreate = new Button();
            btnCreate.SetResourceReference(Button.StyleProperty, "RoundedButton");
            btnCreate.Click += new RoutedEventHandler(btnCreate_Click);
            btnCreate.Height = Double.NaN;
            btnCreate.Width = Double.NaN;
            btnCreate.Content = "Create Airline";
            btnCreate.IsEnabled = false;
            btnCreate.SetResourceReference(Button.BackgroundProperty, "ButtonBrush");
            panelButtons.Children.Add(btnCreate);

            Button btnCancel = new Button();
            btnCancel.SetResourceReference(Button.StyleProperty, "RoundedButton");
            btnCancel.Height = Double.NaN;
            btnCancel.Width = Double.NaN;
            btnCancel.Content = "Cancel";
            btnCancel.Margin = new Thickness(5, 0, 0, 0);
            btnCancel.SetResourceReference(Button.BackgroundProperty, "ButtonBrush");
            btnCancel.Click += new RoutedEventHandler(btnCancel_Click);
            panelButtons.Children.Add(btnCancel);

            base.setTopMenu(new PageTopMenu());

            base.hideNavigator();

            base.hideBottomMenu();

            base.setContent(panelContent);

            base.setHeaderContent("Create New Airline");

            showPage(this);

            airlinerType = Route.RouteType.Passenger;
        }
        private void btnLease_Click(object sender, RoutedEventArgs e)
        {
            Boolean contractedOrder = false;
            Boolean tryOrder = true;

            double totalLeasingPrice = SelectedAirliners.Sum(a => a.Airliner.GetLeasingPrice() * 2);

            if (GameObject.GetInstance().HumanAirline.Contract != null)
            {
                Boolean sameManufaturer =
                    SelectedAirliners.FirstOrDefault(
                        a => a.Airliner.Type.Manufacturer != GameObject.GetInstance().HumanAirline.Contract.Manufacturer)
                    == null;
                if (sameManufaturer)
                {
                    contractedOrder = true;
                }
                else
                {
                    double terminationFee = GameObject.GetInstance().HumanAirline.Contract.GetTerminationFee();
                    WPFMessageBoxResult result =
                        WPFMessageBox.Show(
                            Translator.GetInstance().GetString("MessageBox", "2010"),
                            string.Format(
                                Translator.GetInstance().GetString("MessageBox", "2010", "message"),
                                GameObject.GetInstance().HumanAirline.Contract.Manufacturer.Name,
                                terminationFee),
                            WPFMessageBoxButtons.YesNo);

                    if (result == WPFMessageBoxResult.Yes)
                    {
                        AirlineHelpers.AddAirlineInvoice(
                            GameObject.GetInstance().HumanAirline,
                            GameObject.GetInstance().GameTime,
                            Invoice.InvoiceType.Purchases,
                            -terminationFee);
                        GameObject.GetInstance().HumanAirline.Contract = null;
                    }
                    tryOrder = result == WPFMessageBoxResult.Yes;
                }
            }

            if (totalLeasingPrice > GameObject.GetInstance().HumanAirline.Money)
            {
                WPFMessageBox.Show(
                    Translator.GetInstance().GetString("MessageBox", "2004"),
                    Translator.GetInstance().GetString("MessageBox", "2004", "message"),
                    WPFMessageBoxButtons.Ok);
            }
            else
            {
                if (tryOrder)
                {
                    var cbHomebase = new ComboBox();
                    cbHomebase.SetResourceReference(StyleProperty, "ComboBoxTransparentStyle");
                    cbHomebase.ItemTemplate = Application.Current.Resources["AirportCountryItem"] as DataTemplate;
                    cbHomebase.HorizontalAlignment = HorizontalAlignment.Left;
                    cbHomebase.Width = 300;

                    long minRunway = SelectedAirliners.Max(a => a.Airliner.Type.MinRunwaylength);

                    List<Airport> homebases =
                        GameObject.GetInstance()
                            .HumanAirline.Airports.FindAll(
                                a =>
                                    (a.HasContractType(
                                        GameObject.GetInstance().HumanAirline,
                                        AirportContract.ContractType.FullService)
                                     || a.GetCurrentAirportFacility(
                                         GameObject.GetInstance().HumanAirline,
                                         AirportFacility.FacilityType.Service).TypeLevel > 0)
                                    && a.GetMaxRunwayLength() >= minRunway);
                    foreach (Airport airport in homebases)
                    {
                        cbHomebase.Items.Add(airport);
                    }

                    cbHomebase.SelectedIndex = 0;

                    if (
                        PopUpSingleElement.ShowPopUp(
                            Translator.GetInstance().GetString("PageFleetAirlinerInformation", "1014"),
                            cbHomebase) == PopUpSingleElement.ButtonSelected.OK && cbHomebase.SelectedItem != null)
                    {
                        var airport = cbHomebase.SelectedItem as Airport;

                        var selectedAirliners = new List<AirlinerMVVM>(SelectedAirliners);

                        foreach (AirlinerMVVM airliner in selectedAirliners)
                        {
                            if (Countries.GetCountryFromTailNumber(airliner.Airliner.TailNumber).Name
                                != GameObject.GetInstance().HumanAirline.Profile.Country.Name)
                            {
                                airliner.Airliner.TailNumber =
                                    GameObject.GetInstance()
                                        .HumanAirline.Profile.Country.TailNumbers.GetNextTailNumber();
                            }

                            GameObject.GetInstance()
                                .HumanAirline.AddAirliner(
                                    FleetAirliner.PurchasedType.Leased,
                                    airliner.Airliner,
                                    airport);

                            AirlineHelpers.AddAirlineInvoice(
                                GameObject.GetInstance().HumanAirline,
                                GameObject.GetInstance().GameTime,
                                Invoice.InvoiceType.Rents,
                                -airliner.Airliner.LeasingPrice * 2);

                            if (contractedOrder)
                            {
                                GameObject.GetInstance().HumanAirline.Contract.PurchasedAirliners++;
                            }

                            SelectedAirliners.Remove(airliner);
                            AllAirliners.Remove(airliner);
                        }
                    }
                    else
                    {
                        WPFMessageBox.Show(
                            Translator.GetInstance().GetString("MessageBox", "2002"),
                            Translator.GetInstance().GetString("MessageBox", "2002", "message"),
                            WPFMessageBoxButtons.Ok);
                    }
                }
            }
        }
        public PageExtendedSearchAirports(PageAirports parent)
        {
            this.ParentPage = parent;

            InitializeComponent();

            StackPanel panelSearch = new StackPanel();
            panelSearch.Margin = new Thickness(0, 10, 50, 0);

            TextBlock txtHeader = new TextBlock();
            txtHeader.Uid = "1001";
            txtHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
            txtHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush2");
            txtHeader.FontWeight = FontWeights.Bold;
            txtHeader.Text = Translator.GetInstance().GetString("PageExtendedSearchAirports", txtHeader.Uid);

            panelSearch.Children.Add(txtHeader);

            ListBox lbContent = new ListBox();
            lbContent.ItemContainerStyleSelector = new ListBoxItemStyleSelector();
            lbContent.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem");

            panelSearch.Children.Add(lbContent);

            cbAirport = new ComboBox();
            cbAirport.SetResourceReference(ComboBox.ItemTemplateProperty, "AirportCountryItem");
            cbAirport.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAirport.IsSynchronizedWithCurrentItem = true;
            cbAirport.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbAirport.Width = 200;

            List<Airport> airportsList = Airports.GetAllActiveAirports();

            ICollectionView airportsView = CollectionViewSource.GetDefaultView(airportsList);
            airportsView.SortDescriptions.Add(new SortDescription("Profile.Name", ListSortDirection.Ascending));

            cbAirport.ItemsSource = airportsView;
            cbAirport.SelectedIndex = 0;

            lbContent.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageExtendedSearchAirports", "1002"), cbAirport));

            WrapPanel panelDistance = new WrapPanel();

            cbCompareDistance = new ComboBox();
            createCompareComboBox(cbCompareDistance);
            panelDistance.Children.Add(cbCompareDistance);

            txtDistance = new TextBox();
            txtDistance.PreviewTextInput += new TextCompositionEventHandler(txtDistance_PreviewTextInput);
            txtDistance.Width = 100;
            txtDistance.TextAlignment = TextAlignment.Right;
            txtDistance.Background = Brushes.Transparent;
            panelDistance.Children.Add(txtDistance);

            lbContent.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageExtendedSearchAirports", "1004"), panelDistance));

            WrapPanel panelButtons = new WrapPanel();
            panelButtons.Margin = new Thickness(0, 5, 0, 0);
            panelButtons.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;

            panelSearch.Children.Add(panelButtons);

            Button btnSearch = new Button();
            btnSearch.Uid = "109";
            btnSearch.SetResourceReference(Button.StyleProperty, "RoundedButton");
            btnSearch.Height = Double.NaN;
            btnSearch.Width = Double.NaN;
            btnSearch.IsDefault = true;
            btnSearch.Content = Translator.GetInstance().GetString("General", btnSearch.Uid);
            btnSearch.SetResourceReference(Button.BackgroundProperty, "ButtonBrush");
            btnSearch.Click += new RoutedEventHandler(btnSearch_Click);

            panelButtons.Children.Add(btnSearch);

            this.Content = panelSearch;
        }
        private void btnTransfer_Click(object sender, RoutedEventArgs e)
        {
            ComboBox cbAirliners = new ComboBox();
            cbAirliners.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAirliners.SelectedValuePath = "Name";
            cbAirliners.DisplayMemberPath = "Name";
            cbAirliners.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbAirliners.Width = 200;

            foreach (FleetAirliner airliner in getTransferAirliners())
                cbAirliners.Items.Add(airliner);

            cbAirliners.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PopUpAirlinerRoutes", "1001"), cbAirliners) == PopUpSingleElement.ButtonSelected.OK && cbAirliners.SelectedItem != null)
            {
                FleetAirliner transferAirliner = (FleetAirliner)cbAirliners.SelectedItem;

                foreach (Route route in transferAirliner.Routes)
                {
                    foreach (RouteTimeTableEntry entry in route.TimeTable.Entries.FindAll(en => en.Airliner == transferAirliner))
                    {
                        entry.Airliner = this.Airliner;
                    }
                    this.Airliner.addRoute(route);
                }
                transferAirliner.Routes.Clear();

                showFlights();
            }
        }
        private void btnEditHomebase_Click(object sender, RoutedEventArgs e)
        {
            ComboBox cbHomebase = new ComboBox();
            cbHomebase.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbHomebase.ItemTemplate = Application.Current.Resources["AirportCountryItem"] as DataTemplate;
            cbHomebase.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbHomebase.Width = 200;

            foreach (Airport airport in AirlineHelpers.GetHomebases(GameObject.GetInstance().HumanAirline,this.Airliner.Airliner.Airliner.Type))
            {
                cbHomebase.Items.Add(airport);
            }

            cbHomebase.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PageFleetAirlinerInformation", "1014"), cbHomebase) == PopUpSingleElement.ButtonSelected.OK && cbHomebase.SelectedItem != null)
            {
                Airport homebase = cbHomebase.SelectedItem as Airport;
                this.Airliner.Homebase = homebase;
            }
        }
        //creats a compare type combo box
        private void createCompareComboBox(ComboBox cbCompare)
        {
            cbCompare.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbCompare.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbCompare.Margin = new Thickness(0, 0, 5, 0);
            cbCompare.Width = 100;

            foreach (CompareType type in Enum.GetValues(typeof(CompareType)))
            {
                ComboBoxItem cbItem = new ComboBoxItem();
                cbItem.Content = new TextUnderscoreConverter().Convert(type);
                cbItem.Tag = type;
                cbCompare.Items.Add(cbItem);
            }

            cbCompare.SelectedIndex = cbCompare.Items.Count - 1;
        }
        private void hlAlliance_Click(object sender, RoutedEventArgs e)
        {
            var cbAlliances = new ComboBox();
            cbAlliances.SetResourceReference(StyleProperty, "ComboBoxTransparentStyle");
            cbAlliances.SelectedValuePath = "Name";
            cbAlliances.DisplayMemberPath = "Name";
            cbAlliances.HorizontalAlignment = HorizontalAlignment.Left;
            cbAlliances.Width = 200;

            foreach (var alliance in GameObject.GetInstance().HumanAirline.Alliances)
            {
                cbAlliances.Items.Add(alliance);
            }

            cbAlliances.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PageAirline", "1005"), cbAlliances)
                == PopUpSingleElement.ButtonSelected.OK && cbAlliances.SelectedItem != null)
            {
                var alliance = (Alliance) cbAlliances.SelectedItem;
                if (AIHelpers.DoAcceptAllianceInvitation(Airline.Airline, alliance))
                {
                    WPFMessageBox.Show(
                        Translator.GetInstance().GetString("MessageBox", "2605"),
                        string.Format(
                            Translator.GetInstance().GetString("MessageBox", "2605", "message"),
                            Airline.Airline.Profile.Name,
                            alliance.Name),
                        WPFMessageBoxButtons.Ok);
                    alliance.AddMember(new AllianceMember(Airline.Airline, GameObject.GetInstance().GameTime));

                    Airline.Alliance = alliance;

                    CanHaveAlliance = false;
                    ShowActionMenu = !Airline.Airline.IsHuman
                                     && (CanHaveAlliance || !HasCodesharing);
                }
                else
                {
                    WPFMessageBox.Show(
                        Translator.GetInstance().GetString("MessageBox", "2606"),
                        string.Format(
                            Translator.GetInstance().GetString("MessageBox", "2606", "message"),
                            Airline.Airline.Profile.Name,
                            alliance.Name),
                        WPFMessageBoxButtons.Ok);
                }
            }
        }
        private void btnBuy_Click(object sender, RoutedEventArgs e)
        {
            Boolean contractedOrder = false;
            Boolean tryOrder = true;

            double totalPrice = SelectedAirliners.Sum(a => a.Airliner.GetPrice());

            if (GameObject.GetInstance().HumanAirline.Contract != null)
            {
                Boolean sameManufaturer =
                    SelectedAirliners.FirstOrDefault(
                        a => a.Airliner.Type.Manufacturer != GameObject.GetInstance().HumanAirline.Contract.Manufacturer)
                    == null;

                if (sameManufaturer)
                {
                    contractedOrder = true;
                }
                else
                {
                    double terminationFee = GameObject.GetInstance().HumanAirline.Contract.GetTerminationFee();
                    WPFMessageBoxResult result =
                        WPFMessageBox.Show(
                            Translator.GetInstance().GetString("MessageBox", "2010"),
                            string.Format(
                                Translator.GetInstance().GetString("MessageBox", "2010", "message"),
                                GameObject.GetInstance().HumanAirline.Contract.Manufacturer.Name,
                                terminationFee),
                            WPFMessageBoxButtons.YesNo);

                    if (result == WPFMessageBoxResult.Yes)
                    {
                        AirlineHelpers.AddAirlineInvoice(
                            GameObject.GetInstance().HumanAirline,
                            GameObject.GetInstance().GameTime,
                            Invoice.InvoiceType.Purchases,
                            -terminationFee);
                        GameObject.GetInstance().HumanAirline.Contract = null;
                    }
                    tryOrder = result == WPFMessageBoxResult.Yes;
                }
            }

            if (totalPrice > GameObject.GetInstance().HumanAirline.Money)
            {
                WPFMessageBox.Show(
                    Translator.GetInstance().GetString("MessageBox", "2001"),
                    Translator.GetInstance().GetString("MessageBox", "2001", "message"),
                    WPFMessageBoxButtons.Ok);
            }
            else

            {
                if (tryOrder)
                {
                    var cbHomebase = new ComboBox();
                    cbHomebase.SetResourceReference(StyleProperty, "ComboBoxTransparentStyle");
                    cbHomebase.ItemTemplate = Application.Current.Resources["AirportCountryItem"] as DataTemplate;
                    cbHomebase.HorizontalAlignment = HorizontalAlignment.Left;
                    cbHomebase.Width = 300;

                    long minRunway = SelectedAirliners.Max(a => a.Airliner.Type.MinRunwaylength);

                    List<Airport> homebases = AirlineHelpers.GetHomebases(
                        GameObject.GetInstance().HumanAirline,
                        minRunway);

                    foreach (Airport airport in homebases)
                    {
                        cbHomebase.Items.Add(airport);
                    }

                    cbHomebase.SelectedIndex = 0;

                    if (
                        PopUpSingleElement.ShowPopUp(
                            Translator.GetInstance().GetString("PageFleetAirlinerInformation", "1014"),
                            cbHomebase) == PopUpSingleElement.ButtonSelected.OK && cbHomebase.SelectedItem != null)
                    {
                        var airport = cbHomebase.SelectedItem as Airport;

                        var selectedAirliners = new List<AirlinerMVVM>(SelectedAirliners);
                        foreach (AirlinerMVVM airliner in selectedAirliners)
                        {
                            if (contractedOrder)
                            {
                                AirlineHelpers.BuyAirliner(
                                    GameObject.GetInstance().HumanAirline,
                                    airliner.Airliner,
                                    airport,
                                    GameObject.GetInstance().HumanAirline.Contract.Discount);
                            }
                            else
                            {
                                AirlineHelpers.BuyAirliner(
                                    GameObject.GetInstance().HumanAirline,
                                    airliner.Airliner,
                                    airport);
                            }

                            if (contractedOrder)
                            {
                                GameObject.GetInstance().HumanAirline.Contract.PurchasedAirliners++;
                            }

                            airliner.IsSelected = false;
                            SelectedAirliners.Remove(airliner);
                            AllAirliners.Remove(airliner);
                        }
                    }
                    else
                    {
                        WPFMessageBox.Show(
                            Translator.GetInstance().GetString("MessageBox", "2002"),
                            Translator.GetInstance().GetString("MessageBox", "2002", "message"),
                            WPFMessageBoxButtons.Ok);
                    }
                }
            }
        }
        private ComboBox cbAirport; // cbName;

        #endregion Fields

        #region Constructors

        public PanelUsedAirliner(PageAirliners parent, Airliner airliner)
            : base(parent)
        {
            this.Airliner = airliner;

            StackPanel panelAirliner = new StackPanel();

            panelAirliner.Children.Add(PanelAirliner.createQuickInfoPanel(airliner.Type));

            this.addObject(panelAirliner);

            TextBlock txtHeader = new TextBlock();
            txtHeader.Uid = "1001";
            txtHeader.Margin = new System.Windows.Thickness(0, 5, 0, 0);
            txtHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
            txtHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush2");
            txtHeader.FontWeight = FontWeights.Bold;
            txtHeader.Text = Translator.GetInstance().GetString("PanelUsedAirliner", txtHeader.Uid);

            this.addObject(txtHeader);

            ListBox lbAirlineInfo = new ListBox();
            lbAirlineInfo.ItemContainerStyleSelector = new ListBoxItemStyleSelector();
            lbAirlineInfo.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem");

            this.addObject(lbAirlineInfo);

            lbAirlineInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1002"), UICreator.CreateTextBlock(string.Format("{0} ({1} years old)", this.Airliner.BuiltDate.ToShortDateString(), this.Airliner.Age))));

            WrapPanel panelTailNumber = new WrapPanel();

            TextBlock txtTailNumber = UICreator.CreateTextBlock(this.Airliner.TailNumber);
            txtTailNumber.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
            panelTailNumber.Children.Add(txtTailNumber);

            ContentControl ccFlag = new ContentControl();
            ccFlag.SetResourceReference(ContentControl.ContentTemplateProperty, "CountryFlagLongItem");
            ccFlag.Content = new CountryCurrentCountryConverter().Convert(Countries.GetCountryFromTailNumber(this.Airliner.TailNumber));
            ccFlag.Margin = new Thickness(10, 0, 0, 0);

            panelTailNumber.Children.Add(ccFlag);

            lbAirlineInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1003"), panelTailNumber));
            lbAirlineInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1004"), UICreator.CreateTextBlock(string.Format("{0:0.##} {1}", new NumberToUnitConverter().Convert(this.Airliner.Flown), new StringToLanguageConverter().Convert("km.")))));
            lbAirlineInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1005"), UICreator.CreateTextBlock(string.Format("{0:0.##} {1}", new NumberToUnitConverter().Convert(this.Airliner.LastServiceCheck),new StringToLanguageConverter().Convert("km.")))));

            foreach (AirlinerClass aClass in this.Airliner.Classes)
            {
                TextBlock txtClass = UICreator.CreateTextBlock(new TextUnderscoreConverter().Convert(aClass.Type, null, null, null).ToString());
                txtClass.FontWeight = FontWeights.Bold;

                lbAirlineInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1006"), txtClass));

                foreach (AirlinerFacility.FacilityType type in Enum.GetValues(typeof(AirlinerFacility.FacilityType)))
                {
                    AirlinerFacility facility = aClass.getFacility(type);
                    lbAirlineInfo.Items.Add(new QuickInfoValue(string.Format("{0} facilities", type), UICreator.CreateTextBlock(facility.Name)));
                }
            }

            TextBlock txtPriceHeader = new TextBlock();
            txtPriceHeader.Uid = "1101";
            txtPriceHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
            txtPriceHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush2");
            txtPriceHeader.Margin = new System.Windows.Thickness(0, 5, 0, 0);
            txtPriceHeader.FontWeight = FontWeights.Bold;
            txtPriceHeader.Text = Translator.GetInstance().GetString("PanelUsedAirliner", txtPriceHeader.Uid);

            this.addObject(txtPriceHeader);

            ListBox lbPriceInfo = new ListBox();
            lbPriceInfo.ItemContainerStyleSelector = new ListBoxItemStyleSelector();
            lbPriceInfo.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem");

            this.addObject(lbPriceInfo);

            /*
            lbPriceInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1102"), UICreator.CreateTextBlock(string.Format("{0:c}", this.Airliner.Price))));
            lbPriceInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1103"), UICreator.CreateTextBlock(string.Format("{0:c}", this.Airliner.LeasingPrice))));
            lbPriceInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1104"), UICreator.CreateTextBlock(string.Format("{0:c}", this.Airliner.Type.getMaintenance()))));
            */

            lbPriceInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1102"), UICreator.CreateTextBlock(new ValueCurrencyConverter().Convert(Airliner.Price).ToString())));
            lbPriceInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1103"), UICreator.CreateTextBlock(new ValueCurrencyConverter().Convert(this.Airliner.LeasingPrice).ToString())));
            lbPriceInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1104"), UICreator.CreateTextBlock(new ValueCurrencyConverter().Convert(this.Airliner.Type.getMaintenance()).ToString())));

            cbAirport = new ComboBox();
            cbAirport.SetResourceReference(ComboBox.ItemTemplateProperty, "AirportCountryItem");
            cbAirport.Background = Brushes.Transparent;
            cbAirport.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAirport.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;

            List<Airport> airports = GameObject.GetInstance().HumanAirline.Airports.FindAll(a=>a.getCurrentAirportFacility(GameObject.GetInstance().HumanAirline, AirportFacility.FacilityType.Service).TypeLevel > 0 && a.getMaxRunwayLength() >= this.Airliner.Type.MinRunwaylength);
            airports = (from a in airports orderby a.Profile.Name select a).ToList();

            foreach (Airport airport in airports)
                cbAirport.Items.Add(airport);

            cbAirport.SelectedIndex = 0;

            lbPriceInfo.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PanelUsedAirliner", "1105"), cbAirport));

            WrapPanel panelButtons = new WrapPanel();
            panelButtons.Margin = new Thickness(0, 5, 0, 0);
            this.addObject(panelButtons);

            Button btnBuy = new Button();
            btnBuy.Uid = "200";
            btnBuy.SetResourceReference(Button.StyleProperty, "RoundedButton");
            btnBuy.Height = Double.NaN;
            btnBuy.Width = Double.NaN;
            btnBuy.Content = Translator.GetInstance().GetString("PanelUsedAirliner", btnBuy.Uid);
            btnBuy.SetResourceReference(Button.BackgroundProperty, "ButtonBrush");
            btnBuy.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            btnBuy.Click += new System.Windows.RoutedEventHandler(btnBuy_Click);
            panelButtons.Children.Add(btnBuy);

            Button btnLease = new Button();
            btnLease.Uid = "201";
            btnLease.SetResourceReference(Button.StyleProperty, "RoundedButton");
            btnLease.Height = Double.NaN;
            btnLease.Width = Double.NaN;
            btnLease.Content = Translator.GetInstance().GetString("PanelUsedAirliner", btnLease.Uid);
            btnLease.SetResourceReference(Button.BackgroundProperty, "ButtonBrush");
            btnLease.Margin = new Thickness(5, 0, 0, 0);
            btnLease.Click += new RoutedEventHandler(btnLease_Click);
            panelButtons.Children.Add(btnLease);
        }
        public PageSettings()
        {
            InitializeComponent();

            this.Uid = "1000";
            this.Title = Translator.GetInstance().GetString("PageSettings", this.Uid);

            StackPanel settingsPanel = new StackPanel();
            settingsPanel.Margin = new Thickness(10, 0, 10, 0);

            StandardContentPanel panelContent = new StandardContentPanel();

            panelContent.setContentPage(settingsPanel, StandardContentPanel.ContentLocation.Left);

            ListBox lbSettings = new ListBox();
            lbSettings.ItemContainerStyleSelector = new ListBoxItemStyleSelector();
            lbSettings.SetResourceReference(ListBox.ItemTemplateProperty, "QuickInfoItem");

            settingsPanel.Children.Add(lbSettings);

            WrapPanel panelSpeed = new WrapPanel();

            slGameSpeed = new Slider();
            slGameSpeed.Minimum = (int)GeneralHelpers.GameSpeedValue.Fastest;
            slGameSpeed.Maximum = (int)GeneralHelpers.GameSpeedValue.Slowest;
            slGameSpeed.Width = 100;
            slGameSpeed.IsDirectionReversed = true;
            slGameSpeed.IsSnapToTickEnabled = true;
            slGameSpeed.IsMoveToPointEnabled = true;
            slGameSpeed.TickFrequency = 500;
            slGameSpeed.ToolTip = UICreator.CreateToolTip("1005");

            slGameSpeed.ValueChanged += new RoutedPropertyChangedEventHandler<double>(slGameSpeed_ValueChanged);

            panelSpeed.Children.Add(slGameSpeed);

            txtGameSpeed = UICreator.CreateTextBlock(GameTimer.GetInstance().GameSpeed.ToString());
            txtGameSpeed.Margin = new Thickness(5, 0, 0, 0);
            txtGameSpeed.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;

            panelSpeed.Children.Add(txtGameSpeed);

            slGameSpeed.Value = (int)GameTimer.GetInstance().GameSpeed;
            lbSettings.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSettings","1001"),panelSpeed));

            cbTurnMinutes = new ComboBox();
            cbTurnMinutes.Width = 100;
            cbTurnMinutes.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbTurnMinutes.Items.Add(15);
            cbTurnMinutes.Items.Add(30);
            cbTurnMinutes.Items.Add(60);
            cbTurnMinutes.ToolTip = UICreator.CreateToolTip("1006");

            cbTurnMinutes.SelectedItem = Settings.GetInstance().MinutesPerTurn;

            if (!GameObject.GetInstance().DayRoundEnabled)
                lbSettings.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSettings","1006"),cbTurnMinutes));

            cbLanguage = new ComboBox();
            cbLanguage.Width = 200;
            cbLanguage.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            // chs, 2011-10-11 changed to display flag together with language
            cbLanguage.ItemTemplate = this.Resources["LanguageItem"] as DataTemplate;
            cbLanguage.ToolTip = UICreator.CreateToolTip("1007");

            foreach (Language language in Languages.GetLanguages().FindAll(l=>l.IsEnabled))
                cbLanguage.Items.Add(language);

            cbLanguage.SelectedItem = AppSettings.GetInstance().getLanguage();

            lbSettings.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSettings", "1002"), cbLanguage));

            cbSkin = new ComboBox();
            cbSkin.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbSkin.Width = 200;
            cbSkin.SelectedValuePath = "Name";
            cbSkin.DisplayMemberPath = "Name";
            cbSkin.ToolTip = UICreator.CreateToolTip("1008");

            foreach (Skin skin in Skins.GetSkins())
                cbSkin.Items.Add(skin);

            cbSkin.SelectedItem = SkinObject.GetInstance().CurrentSkin;

            lbSettings.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSettings", "1003"), cbSkin));

            cbMailOnLandings = new CheckBox();
            cbMailOnLandings.IsChecked = Settings.GetInstance().MailsOnLandings;
            lbSettings.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSettings", "1004"), cbMailOnLandings));
            cbMailOnLandings.ToolTip = UICreator.CreateToolTip("1009");

            cbMailOnBadWeather = new CheckBox();
            cbMailOnBadWeather.IsChecked = Settings.GetInstance().MailsOnBadWeather;
            lbSettings.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSettings","1007"),cbMailOnBadWeather));
            cbMailOnBadWeather.ToolTip = UICreator.CreateToolTip("1010");

            cbShortenCurrency = new CheckBox();
            cbShortenCurrency.IsChecked = Settings.GetInstance().CurrencyShorten;
            lbSettings.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSettings", "1008"), cbShortenCurrency));
            cbShortenCurrency.ToolTip = UICreator.CreateToolTip("1011");

            rbAirportCodes = new RadioButton[Enum.GetValues(typeof(Settings.AirportCode)).Length];

            WrapPanel panelAirpodeCode = new WrapPanel();
            int i = 0;
            foreach (Settings.AirportCode code in Enum.GetValues(typeof(Settings.AirportCode)))
            {
                rbAirportCodes[i] = new RadioButton();
                rbAirportCodes[i].Content = code.ToString();
                rbAirportCodes[i].GroupName = "AirportCode";
                rbAirportCodes[i].Tag = code;
                rbAirportCodes[i].Margin = new Thickness(0, 0, 5, 0);
                rbAirportCodes[i].IsChecked = code == Settings.GetInstance().AirportCodeDisplay;
                rbAirportCodes[i].ToolTip = UICreator.CreateToolTip("1012");

                panelAirpodeCode.Children.Add(rbAirportCodes[i]);
                i++;
            }
            lbSettings.Items.Add(new QuickInfoValue(Translator.GetInstance().GetString("PageSettings", "1005"), panelAirpodeCode));

            WrapPanel buttonsPanel = new WrapPanel();
            buttonsPanel.Margin = new Thickness(0, 10, 0, 0);
            settingsPanel.Children.Add(buttonsPanel);

            Button 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.Click += new RoutedEventHandler(btnOk_Click);
            btnOk.Click += new RoutedEventHandler(btnOk_Click);
            btnOk.SetResourceReference(Button.BackgroundProperty, "ButtonBrush");

            buttonsPanel.Children.Add(btnOk);

            Button btnUndo = new Button();
            btnUndo.Uid = "103";
            btnUndo.SetResourceReference(Button.StyleProperty, "RoundedButton");
            btnUndo.Height = Double.NaN;
            btnUndo.Margin = new Thickness(5, 0, 0, 0);
            btnUndo.Width = Double.NaN;
            btnUndo.Click += new RoutedEventHandler(btnUndo_Click);
            btnUndo.Content = Translator.GetInstance().GetString("General", btnUndo.Uid);
            btnUndo.SetResourceReference(Button.BackgroundProperty, "ButtonBrush");

            buttonsPanel.Children.Add(btnUndo);

            base.setContent(panelContent);

            base.setHeaderContent(this.Title);

            showPage(this);
        }
        private void btnLoadTimetable_Click(object sender, RoutedEventArgs e)
        {
            ComboBox cbConfigurations = new ComboBox();
            cbConfigurations.SetResourceReference(StyleProperty, "ComboBoxTransparentStyle");
            cbConfigurations.SelectedValuePath = "Name";
            cbConfigurations.DisplayMemberPath = "Name";
            cbConfigurations.HorizontalAlignment = HorizontalAlignment.Left;
            cbConfigurations.Width = 350;

            foreach (
                AirlinerScheduleConfiguration confItem in
                    Configurations.GetConfigurations(Configuration.ConfigurationType.AirlinerSchedule)
                    )
            {
                cbConfigurations.Items.Add(confItem);
            }

            cbConfigurations.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(
                Translator.GetInstance().GetString("PageAirlineWages", "1013"),
                cbConfigurations) == PopUpSingleElement.ButtonSelected.OK && cbConfigurations.SelectedItem != null)
            {
                var configuration = (AirlinerScheduleConfiguration)cbConfigurations.SelectedItem;

                AirlinerType originType = configuration.AirlinerType;
                AirlinerType destType = Airliner.Airliner.Type;

                Boolean canFlyRoute = originType.TypeAirliner == destType.TypeAirliner && TimeTableHelpers.IsTimeTableValid(Airliner,configuration.Entries);

                if (canFlyRoute)
                {
                    clearTimeTable();

                    foreach (RouteTimeTableEntry entry in configuration.Entries)
                        Entries.Add(entry);
                }
                else
                {
                    WPFMessageBox.Show(
                    Translator.GetInstance().GetString("MessageBox", "2707"),
                    Translator.GetInstance().GetString("MessageBox", "2707", "message"),
                    WPFMessageBoxButtons.Ok);
                }

            }
        }
        private void btnHire_Click(object sender, RoutedEventArgs e)
        {
            Instructor instructor = (Instructor)((Button)sender).Tag;

            ComboBox cbFlightSchools = new ComboBox();
            cbFlightSchools.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbFlightSchools.Width = 200;
            cbFlightSchools.SelectedValuePath = "Name";
            cbFlightSchools.DisplayMemberPath = "Name";
            cbFlightSchools.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;

            foreach (FlightSchool fs in GameObject.GetInstance().HumanAirline.FlightSchools.Where(f => f.NumberOfInstructors < FlightSchool.MaxNumberOfInstructors))
                cbFlightSchools.Items.Add(fs);

            cbFlightSchools.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PanelFlightSchool", "1008"), cbFlightSchools) == PopUpSingleElement.ButtonSelected.OK && cbFlightSchools.SelectedItem != null)
            {
                FlightSchool flightSchool = (FlightSchool)cbFlightSchools.SelectedItem;

                flightSchool.addInstructor(instructor);
                instructor.FlightSchool = flightSchool;

                this.AllInstructors.Remove(instructor);

                ICollectionView view = CollectionViewSource.GetDefaultView(lvFlightSchools.ItemsSource);
                view.Refresh();
            }
        }
        private void btnTransfer_Click(object sender, RoutedEventArgs e)
        {
            var cbAirliners = new ComboBox();
            cbAirliners.SetResourceReference(StyleProperty, "ComboBoxTransparentStyle");
            cbAirliners.SelectedValuePath = "Name";
            cbAirliners.DisplayMemberPath = "Name";
            cbAirliners.HorizontalAlignment = HorizontalAlignment.Left;
            cbAirliners.Width = 200;

            long maxDistance = Airliner.Airliner.Range;

            long requiredRunway = Airliner.Airliner.MinRunwaylength;

            List<FleetAirliner> airliners =
                GameObject.GetInstance()
                    .HumanAirline.Fleet.FindAll(
                        a =>
                            a != Airliner && a.Routes.Count > 0 && a.Status == FleetAirliner.AirlinerStatus.Stopped
                            && a.Routes.Max(r => r.GetDistance()) <= maxDistance);

            foreach (FleetAirliner airliner in airliners)
            {
                cbAirliners.Items.Add(airliner);
            }

            cbAirliners.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(
                Translator.GetInstance().GetString("PopUpAirlinerRoutes", "1001"),
                cbAirliners) == PopUpSingleElement.ButtonSelected.OK && cbAirliners.SelectedItem != null)
            {
                clearTimeTable();

                var transferAirliner = (FleetAirliner)cbAirliners.SelectedItem;

                foreach (Route route in transferAirliner.Routes)
                {
                    foreach (
                        RouteTimeTableEntry entry in
                            route.TimeTable.Entries.FindAll(en => en.Airliner == transferAirliner))
                    {
                        entry.Airliner = Airliner;

                        Entries.Add(entry);
                    }

                    if (!Airliner.Routes.Contains(route))
                    {
                        Airliner.AddRoute(route);
                        Routes.Add(route);
                    }
                }
                transferAirliner.Routes.Clear();
            }
        }