Class SimpleApplicationGUI


  • public abstract class SimpleApplicationGUI
    extends java.lang.Object
    Diese abstrakte Klasse stellt eine grafische Benutzeroberfläche zum ausführen von Klassen zur Verfügung. Die Klasse stellt ein Menu und ein Fenster, das Fehler und Logs darstellt, zur Verfügung. Das Menu erlaubt dem Benutzer die Logs zu speichern und das Programm zu beenden. Der Benutzer kann eigene Fenster in die Oberfläche integrieren, indem er Methoden dieser Klasse überschreibt, falls er die Klassen nicht überschreibt wird ein Standardfenster zur Verfügung gestellt.

    Der Benutzer kann mehrere Aufrufparamter übergeben, die ausgewertet werden:
    -gui= ja/nein (soll die grafische Benutzeroberfläche angezeigt werden)
    -prozessname= Klasse, die ausgeführt werden soll
    -arbeitsverzeichnis= Arbeitsverzeichnis, das genutzt werden soll

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected SimpleApplicationGUI()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javax.swing.JPanel createLegendPanel()
      Dieses Panel wird auf der linken Seite der Oberfläche dargestellt.
      javax.swing.JPanel createUserPanel()
      Diese Methode wird aufgerufen, wenn der Benutzer kein eigenes Panel benutzen möchte.
      void endProcess()
      Diese Methode wird aufgerufen, falls ein Prozess beendet werden soll.
      java.lang.String[] getArguments()
      Diese Methode gibt eine überarbeitete Argumentliste zurück.
      java.lang.Process getProcess()
      Der Aufruf dieser Methode gibt den Prozess zurück, der derzeit ausgeführt wird.
      javax.swing.JMenu[] newMenuEntries()
      Diese Methode gibt ein Array mit neuen Menueinträgen zurück.
      void processScript​(java.lang.String[] arguments, java.lang.String[] environment, java.io.File workingDirectory)
      Diese Methode erzeugt einen Prozess, der ausgeführt wird.
      void showAboutBox()
      Diese Methode zeigt ein "Über" Fenster als JFrame.
      void start​(java.lang.String[] args, boolean startProcess)
      Diese Methode wertet die übergebenen Argumente aus und zeigt falls gewünscht die Oberfläche an.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SimpleApplicationGUI

        protected SimpleApplicationGUI()
    • Method Detail

      • processScript

        public final void processScript​(java.lang.String[] arguments,
                                        java.lang.String[] environment,
                                        java.io.File workingDirectory)
                                 throws java.io.IOException
        Diese Methode erzeugt einen Prozess, der ausgeführt wird. Alle Ausgaben werden in der Oberfläche dargestellt. Falls bereits ein Prozess existiert, wird dieser abgebrochen endProcess() und ein neuer Prozess erzeugt. Der neue Prozess benutzt die übergebenen Parameter.
        Parameters:
        arguments - Übergabeparameter, die benutzt werden sollen oder null
        environment - Umgebungsvariablen oder null
        workingDirectory - Arbeitsverzeichnis oder null
        Throws:
        java.io.IOException - siehe Process Fehlerbeschreibung
      • start

        public final void start​(java.lang.String[] args,
                                boolean startProcess)
        Diese Methode wertet die übergebenen Argumente aus und zeigt falls gewünscht die Oberfläche an. Der zu startende Prozess kann entweder sofort gestartet werden oder aber erst später. Falls der Prozess nicht sofort gestartet wird, weil zum Beispiel auf eine Eingabe des Benutzer gewartet wird, muss der Prozess durch den Aufruf processScript(java.lang.String[], java.lang.String[], java.io.File) gestartet werden.
        Parameters:
        args - Argumente, mit denen der Prozess gestartet werden soll. Die Argumente enthalten ausserdem die Information, ob die Oberfläche angezeigt werden soll oder nicht
        startProcess - true = Der in den Argumenten festgelegte Prozess wird sofort gestartet; false = Der in den Argumenten festgelegte Prozess wird nicht gestartet und muss mit dem Aufruf processScript(java.lang.String[], java.lang.String[], java.io.File) gestartet werden
      • createLegendPanel

        public javax.swing.JPanel createLegendPanel()
        Dieses Panel wird auf der linken Seite der Oberfläche dargestellt. Wird diese Methode nicht überschrieben wird ein Standartpanel erzeugt.
        Returns:
        Panel, das auf der linken Seite der Oberfläche dargestellt wird
      • createUserPanel

        public javax.swing.JPanel createUserPanel()
        Diese Methode wird aufgerufen, wenn der Benutzer kein eigenes Panel benutzen möchte. Es wird das K2S Logo angezeigt und ein Button um den Prozess neu zu starten.
        Returns:
        Standard Panel, Funktionen s.o.
      • newMenuEntries

        public javax.swing.JMenu[] newMenuEntries()
        Diese Methode gibt ein Array mit neuen Menueinträgen zurück. Diese Einträge werden dann später in das bestehende Menu eingefügt. Die Menueinträge müssen komplett implementiert sein (Aktions, Shortcuts, usw.) da sie lediglich eingefügt und nicht mehr modifiziert werden.
        Returns:
        Menueinträge, die in ein bestehendes Menu eingefügt werden sollen
      • showAboutBox

        public void showAboutBox()
        Diese Methode zeigt ein "Über" Fenster als JFrame.
      • getProcess

        public final java.lang.Process getProcess()
        Der Aufruf dieser Methode gibt den Prozess zurück, der derzeit ausgeführt wird. Wurde noch kein Prozess gestartet, wird null zurückgegeben.
        Returns:
        Prozess, der ausgeführt wird oder null falls noch kein Prozess gestartet wurde
      • endProcess

        public void endProcess()
        Diese Methode wird aufgerufen, falls ein Prozess beendet werden soll. Falls diese Methode überschrieben werden soll, muss zuerst der aktuelle Prozess mit getProcess() angefordert werden um das Objekt des aktuellen Prozzeses zu erhalten.
      • getArguments

        public final java.lang.String[] getArguments()
        Diese Methode gibt eine überarbeitete Argumentliste zurück. Die überarbeitet Argumentliste ist dabei aus der Argumentliste entstanden, die in der Methode start(java.lang.String[], boolean) übergeben wurde. Es wurden folgende Argumente entfernt:
        -gui
        -prozessname
        -arbeitsverzeichnis
        Falls ein Prozess diese Argumentliste mit ArgumentList.fetchArgument(java.lang.String) bearbeitet, werden die Elemente aus der Liste entfernt und nicht wieder eingefügt, auch die enstehenden null Einträge bleiben in dieser Argumentliste bestehen!
        Returns:
        modifizierte Argumentliste