Exemplo n.º 1
0
        // Kontruktor für den Stellplatz zuweisen Dialog
        public FormStellplatzZuweisen(Verwaltung pVerwaltung, Fahrzeug pFahrzeug)
        {
            verwaltung = pVerwaltung;
            fahrzeug   = pFahrzeug;

            // Initialisiere alle Elemente des Dialogs
            // Der Inhalt dieser Funktion wird von Visual Studio erzeugt und soll nicht mauell verändert werden
            InitializeComponent();

            // Fülle Combobox mit allen vorhandenen Parkhäusern
            for (int iParkhaus = 0; iParkhaus < verwaltung.AnzahlParkhaeuser; iParkhaus++)
            {
                // Hole Parkhaus-Objekt aus der Parkhausliste
                Parkhaus ph = verwaltung.ParkhausGet(iParkhaus);

                // Füge Parkhaus (Nummer, Ort, Strasse) zur Combobox hinzu
                comboBoxParkhaus.Items.Add("Parkhaus " + ph.ParkhausNummer + ", " + ph.Ort + ", " + ph.Strasse);
            }

            // Füge zusätzlichen Eintrag "Zuweisung löschen" hinzu, wenn Fahrzeug bereits einen zugwiesenen Stellplatz hat
            if ((fahrzeug.ParkhausNummer > 0) && (fahrzeug.StellplatzNummer > 0))
            {
                comboBoxParkhaus.Items.Add("Stellplatzzuweisung löschen");
            }

            // Wähle erstes (Index = 0) Parkhaus aus
            comboBoxParkhaus.SelectedIndex = 0;
        }
Exemplo n.º 2
0
        // Wird aufgerufen wenn ein anderes Parkhaus in der ComboBox ausgewählt wurde
        private void comboBoxParkhaus_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Prüfe ob Parkhaus ausgewählt wurde (Liste könnte auch leer sein)
            if (comboBoxParkhaus.Items.Count > 0)
            {
                // Nachdem ein anderes Parkhaus gewählt wurde, muss die ComboBox mit den
                // verfügbaren Stellplätzen neu gefüllt werden.
                // Lösche zunächst alle Einträge in der ComboBox für Stellpätze
                comboBoxStellplatz.Items.Clear();

                // Am Ende der Liste in der Parkhaus-ComboBox existiert eventuell der Spezialeintrag "Zuweisung löschen".
                // Falls dieser ausgwählt wurde, wird die Stellpatz-ComboBox nicht gefüllt.
                // Ein echtes Parkhaus wurde ausgewählt, wenn der Index in der Combobox kleiner als AnzahlParkhaeuser ist.
                if (comboBoxParkhaus.SelectedIndex < verwaltung.AnzahlParkhaeuser)
                {
                    // Hole Parkhaus-Objekt aus Parkhaus-Liste
                    // Der Index des ausgewählten Parkhauses in der ComboBox kann direkt verwendet werden,
                    //  um auf die Parkhausliste zuzugreifen.
                    Parkhaus ph = verwaltung.ParkhausGet(comboBoxParkhaus.SelectedIndex);

                    // Fülle ComboBox mit Stellplätzen
                    for (int iStellplatz = 0; iStellplatz < ph.AnzahlStellplaetze; iStellplatz++)
                    {
                        Stellplatz sp = ph.StellPlaetze[iStellplatz];

                        // Es werden nur folgende Stellpätze angezeigt:
                        //   - Stellplatztyp (PKW, LKW, Motorrad) muss identisch mit dem Fahrzeugtyp sein
                        //   - der Stellplatz muss frei sein
                        if ((fahrzeug.Typ == sp.Typ) && (sp.FreierStellplatz() == true))
                        {
                            comboBoxStellplatz.Items.Add(sp.Nummer);
                        }
                    }
                }
                else
                {
                    comboBoxStellplatz.Items.Add("-");
                }

                // Wähle ersten Stellplatz in der ComboBox aus, wenn mindestens ein Stellplatz vorhanden ist
                if (comboBoxStellplatz.Items.Count > 0)
                {
                    comboBoxStellplatz.SelectedIndex = 0;
                }
            }
        }
        // Aktualisiert die Darstellung der Parkhäuser im Hauptfenster
        private void ViewParkhaeuser_Update()
        {
            // Lösche alle Einträge im Listview
            listViewParkhaeuser.Items.Clear();

            // Füge die Daten aller Parkhäuser zum Listview hinzu
            for (int ii = 0; ii < Verwaltung.AnzahlParkhaeuser; ii++)
            {
                // Hole Parkhausobjekt aus der Parkhausliste
                Parkhaus ph = Verwaltung.ParkhausGet(ii);

                // Alle dargestellten Daten eines Parkhauses werden in ein Array kopiert
                // Das Array entspricht einer Zeile im Listview
                // Jedes Array-Element entspricht dabei einer Spalte im Listview
                string[] ListviewZeile = new string[7];

                // Spalten 1: Parkhausnummer
                ListviewZeile[0] = ph.ParkhausNummer.ToString();

                // Spalten 2 - 4: Addresse
                ListviewZeile[1] = ph.PLZ;
                ListviewZeile[2] = ph.Ort;
                ListviewZeile[3] = ph.Strasse;

                // Spalte 5: Anzahl der PKW Stellplätze (Belegt/Frei)
                ListviewZeile[4] = ph.AnzahlStellplaetze_Belegt_Typ("PKW").ToString() + " von " + ph.AnzahlStellplaetze_Typ("PKW").ToString();

                // Spalte 6: Anzahl der LKW Stellplätze (Belegt/Frei)
                ListviewZeile[5] = ph.AnzahlStellplaetze_Belegt_Typ("LKW").ToString() + " von " + ph.AnzahlStellplaetze_Typ("LKW").ToString();

                // Spalte 7: Anzahl der Motorrad Stellplätze (Belegt/Frei)
                ListviewZeile[6] = ph.AnzahlStellplaetze_Belegt_Typ("Motorrad").ToString() + " von " + ph.AnzahlStellplaetze_Typ("Motorrad").ToString();

                // Füge neue Zeile  mit Parkhausdaten zum Listview hinzu
                listViewParkhaeuser.Items.Add(new ListViewItem(ListviewZeile));
            }
            // Passe die Breite aller Spalten so an, dass alle Daten sichtbar sind
            foreach (ColumnHeader ch in listViewParkhaeuser.Columns)
            {
                ch.Width = -2;
            }
        }