Beispiel #1
0
        /// <summary>
        /// Konstruktor som tar emot värden för flightnummer och en FlightEventDelegate som
        /// kommer att anropas när användaren interagerar med fönstret.
        /// </summary>
        public FlightWindow(string flightNr, FlightEventDelegate flightEventDel)
        {
            this.flightNr       = flightNr;
            this.flightEventDel = flightEventDel;

            InitializeComponent();
            Title = "Flight " + flightNr;

            // Försök hämta bild för flygbolaget baserat på flightnumret. Bilder finns
            // inlagda i img/ -katalogen för flightnummer som börjar på dd, dy och su.
            if (flightNr.Length > 1)
            {
                string iataCode = flightNr.Substring(0, 2);
                try {
                    logoImage.Source = new BitmapImage(new Uri(@"pack://application:,,,/"
                                                               + Assembly.GetExecutingAssembly().GetName().Name
                                                               + ";component/"
                                                               + "img/" + iataCode + ".jpg", UriKind.Absolute));
                }
                catch (Exception e) {
                    // Bilden finns inte eller kunde inte läsas, gör inget.
                }
            }

            // Publicera att flyget är på väg till startbanan
            flightEventDel(new FlightEventArgs(flightNr, "Sent to runway"));
        }
Beispiel #2
0
        /// <summary>
        /// Öppnar ett nytt fönster med en ny flight.
        /// </summary>
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (flightNrEdit.Text.Length < 2)
            {
                MessageBox.Show("Ett flightnummer måste bestå av minst två tecken.");
                return;
            }

            // Dessa delegates kommer att anropas av flight - fönstret när användaren klickar
            // på Takeoff eller Landing, eller väljer en ny kurs i dropdownlistan.
            FlightEventDelegate controlTowerDel = OnFlightEvent;
            FlightEventDelegate counterDel      = inAirCounter.OnFlightEvent;

            // Skapa ett nytt flightfönster och ange båda ovanstående delegates som mottagare
            // för händelser.
            FlightWindow flightWindow = new FlightWindow(flightNrEdit.Text, controlTowerDel + counterDel);

            flightWindow.Show();
        }