
/**
 * Kontrolleur des Programms.
 * 
 * @author ISB-Arbeitskreis, Umsetzungshilfen Informatik 12
 * @version 1.0
 */
class KONTROLLEUR implements KONTROLLEURINTERFACE
{

    /* Die ereigniserzeugende Oberfl&auml;che */
    private OBERFLAECHENINTERFACE oberflaeche;
    
    /**
     * Besetzt das Attribut vor.
     */
    KONTROLLEUR ()
    {
        oberflaeche = null;
    }

    /**
     * Setzt die Oberfl&auml;che.
     * @param o die ereigniserzeugende Oberfl&auml;che
     */
    void OberflaecheSetzen (OBERFLAECHENINTERFACE o)
    {
        oberflaeche = o;
    }
    
    /**
     * Ausf&uuml;hren der Laufzeitmessungen.
     * @param anzahlElemente Anzahl der zu sortierenden Datenelemente
     * @param auswahl gibt an, ob mit Auswahlsort sortiert werden soll
     * @param baum gibt an, ob mit Mergesort sortiert werden soll
     */
    public void SortierenAusfuehren (int anzahlElemente, boolean auswahl, boolean mischen)
    {
        Model. TESTSORTIEREN test;
        oberflaeche. AuswahlSortierzeitSetzen ("---");
        oberflaeche. MischSortierzeitSetzen ("---");
        test = new Model. TESTSORTIEREN (anzahlElemente);
        test. DurchschnittsTest (auswahl, mischen);
        if (auswahl)
        {
            oberflaeche. AuswahlSortierzeitSetzen ("" + test. ZeitFuerAuswahlGeben ());
        }
        if (mischen)
        {
            oberflaeche. MischSortierzeitSetzen ("" + test. ZeitFuerMergesortGeben ());
        }
        
    }
    
    /**
     * Beendet das Programm.
     */
    public void BeendenAusfuehren ()
    {
        System. exit (0);
    }
}
