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
Modifier and Type | Class and Description |
---|---|
private static class |
SimpleApplicationGUI.StreamReaderThread
Diese Klasse stellt einen Stream in einem dafür vorgesehenem Fenster dar.
|
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
_className
Klasse, die gestartet wird
|
private java.lang.String |
_clearDebugLogText |
private java.lang.String |
_clearErrorLogText |
private javax.swing.JTextArea |
_debugTextArea
In diesem Fenster werden alle DEbugausgaben dargestellt
|
private java.lang.Thread |
_debugThread
Gibt Debugmessages aus
|
private java.lang.String |
_endText |
private javax.swing.JTextArea |
_errorTextArea
In diesem Fenster werden alle “Standart Error Messages” dargestellt
|
private java.lang.Thread |
_errorThread
Gibt Errormessages aus
|
private java.io.File |
_fileChooserDirectory
Speichert das zuletzt gewählte Verzeichnis in einem FileChooser
|
(package private) static java.awt.Font |
_font
Font für Logs
|
private javax.swing.JPanel |
_legendPanel
Dieses Fenster wird in der historie angezeigt und erscheint zwischen den beiden Logos auf der linken Seite
|
private javax.swing.JFrame |
_mainFrame
Panel, das alle Componenten enthält, die angezeigt werden sollen
|
private javax.swing.JMenuBar |
_menuBar
Menu, das vom Anwender der abstrakten Klasse modifiziert werden kann
|
private java.lang.String[] |
_modifiedArgumentlist
Argumentliste, die in der start-Methode übergeben wurde, es fehlen die Argumente:
-gui -prozessname -arbeitsverzeichnis |
private java.lang.Process |
_process
Prozess, der das Script ausführt
|
private java.lang.String[] |
_processArguments
Speichert die Argumente, mit denen der Prozoess aufgerufen wurde
|
private java.lang.String[] |
_processEnvironment
Speichert die Umgebungsvariablen, mit denen der Prozoess aufgerufen wurde
|
private java.io.File |
_processWorkingDirectory
Speichert das Arbeitsverzeichniss des Prozesses
|
private java.lang.String |
_saveDebugLogText |
private java.lang.String |
_saveErrorLogText |
(package private) java.lang.String |
_standardUserPanelButtonName
Falls der StandardUserPanel benutzt wird, wird hier der Name des Buttons zum stoppen und neustarten des Prozesses festgelegt.
|
private javax.swing.JPanel |
_userPanel
Dieses Panel wird vom Benutzer zur Verfügung gestellt
|
Modifier | Constructor and Description |
---|---|
protected |
SimpleApplicationGUI() |
Modifier and Type | Method and Description |
---|---|
private java.lang.String[] |
cleanedArgumentArray(java.lang.String[] argumentList)
Diese Methode filtert aus einer Argumentenliste alle Einträge heraus, die
null sind und gibt ein bereinigtes Array zurück. |
private javax.swing.JMenu |
createHelpMenuEntry() |
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.
|
private void |
saveLog(java.io.File file,
java.lang.String log)
Diese Methode speichert einen übergebenen String in eine Datei, die ebenfalls übergeben wird
|
void |
showAboutBox()
Diese Methode zeigt ein “Über” Fenster als JFrame.
|
private void |
showGUI()
Stellt die GUI dar
|
private void |
showHelp()
Zeigt eine Hilfedatei(HTML) an
|
void |
start(java.lang.String[] args,
boolean startProcess)
Diese Methode wertet die übergebenen Argumente aus und zeigt falls gewünscht die Oberfläche an.
|
static final java.awt.Font _font
Font für Logs
private final javax.swing.JFrame _mainFrame
Panel, das alle Componenten enthält, die angezeigt werden sollen
private final javax.swing.JMenuBar _menuBar
Menu, das vom Anwender der abstrakten Klasse modifiziert werden kann
private javax.swing.JPanel _userPanel
Dieses Panel wird vom Benutzer zur Verfügung gestellt
private javax.swing.JPanel _legendPanel
Dieses Fenster wird in der historie angezeigt und erscheint zwischen den beiden Logos auf der linken Seite
private javax.swing.JTextArea _debugTextArea
In diesem Fenster werden alle DEbugausgaben dargestellt
private javax.swing.JTextArea _errorTextArea
In diesem Fenster werden alle “Standart Error Messages” dargestellt
private java.lang.Process _process
Prozess, der das Script ausführt
private java.lang.Thread _errorThread
Gibt Errormessages aus
private java.lang.Thread _debugThread
Gibt Debugmessages aus
private final java.lang.String _saveErrorLogText
private final java.lang.String _saveDebugLogText
private final java.lang.String _clearErrorLogText
private final java.lang.String _clearDebugLogText
private final java.lang.String _endText
private java.io.File _fileChooserDirectory
Speichert das zuletzt gewählte Verzeichnis in einem FileChooser
private java.lang.String[] _processArguments
Speichert die Argumente, mit denen der Prozoess aufgerufen wurde
private java.lang.String[] _processEnvironment
Speichert die Umgebungsvariablen, mit denen der Prozoess aufgerufen wurde
private java.io.File _processWorkingDirectory
Speichert das Arbeitsverzeichniss des Prozesses
private java.lang.String _className
Klasse, die gestartet wird
final java.lang.String _standardUserPanelButtonName
Falls der StandardUserPanel benutzt wird, wird hier der Name des Buttons zum stoppen und neustarten des Prozesses festgelegt.
private java.lang.String[] _modifiedArgumentlist
Argumentliste, die in der start-Methode übergeben wurde, es fehlen die Argumente:
-gui
-prozessname
-arbeitsverzeichnis
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.
arguments
- Übergabeparameter, die benutzt werden sollen oder nullenvironment
- Umgebungsvariablen oder nullworkingDirectory
- Arbeitsverzeichnis oder nulljava.io.IOException
- siehe Process
Fehlerbeschreibungpublic 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.
args
- Argumente, mit denen der Prozess gestartet werden soll. Die Argumente enthalten ausserdem die Information, ob die Oberfläche angezeigt werden soll oder nichtstartProcess
- 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 werdenprivate void showGUI()
Stellt die GUI dar
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.
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.
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.
private javax.swing.JMenu createHelpMenuEntry()
private void showHelp()
Zeigt eine Hilfedatei(HTML) an
public void showAboutBox()
Diese Methode zeigt ein “Über” Fenster als JFrame.
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.
null
falls noch kein Prozess gestartet wurdepublic 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.
private void saveLog(java.io.File file, java.lang.String log) throws java.io.IOException
Diese Methode speichert einen übergebenen String in eine Datei, die ebenfalls übergeben wird
file
- Datei, in die geschrieben werden solllog
- Text, der geschrieben werden solljava.io.IOException
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!
private java.lang.String[] cleanedArgumentArray(java.lang.String[] argumentList)
Diese Methode filtert aus einer Argumentenliste alle Einträge heraus, die null
sind und gibt ein bereinigtes Array zurück.
argumentList
- Array mit Argumenten, es können ebenfalls Einträge null
seinnull
sind