public class SettingsHandler
extends java.lang.Object
Organisiert die Einstellungen der Module
. Es werden zwei Tabellen geführt. Eine zeigt die zuletzt verwendeten Einstellungen an, die andere Tabelle die gespeicherten Einstellungen. Aus beiden Tabellen können die Einstellungen gestartet, gespeichert bzw. umbenannt, geändert oder gelöscht werden. Die gespeicherten Einstellungen können zudem im XML-Format exportiert und importiert werden.
Modifier and Type | Class and Description |
---|---|
private static class |
SettingsHandler.ColumnHeaderToolTips
Diese Klasse weist einem Spaltenheader einer Tabelle einen Tooltip zu.
|
private static class |
SettingsHandler.XMLFilter
Diese Klasse dient dem FileDialog zur Filterung nach XML-Dateien.
|
Modifier and Type | Field and Description |
---|---|
private GenericTestMonitorApplication |
_application
speichert ein Objekt der Applikation
|
private javax.swing.JButton |
_changeButton
der Button ruft den Dialog des zu den Einstellungen passenden Moduls auf
|
private DataModel |
_dataModel
speichert das Datenmodell des Datenverteilers
|
private static Debug |
_debug
der Debug-Logger
|
private javax.swing.JButton |
_deleteButton
der Button löscht die gewählte Einstellung aus der Liste
|
private javax.swing.JButton |
_exportButton
der Button exportiert die ausgewählten Einstellungen
|
private boolean |
_ignoreListChangeSelectionEvent |
private javax.swing.JButton |
_importButton
der Button importiert Einstellungen aus einer XML-Datei
|
private java.util.prefs.Preferences |
_lastUsedPreferences
speichert den Knoten mit den zuletzt verwendeten Einstellungen
|
private java.util.List<SettingsData> |
_lastUsedSettingsList
speichert alle zuletzt verwendeten Einstellungen als SettingsData-Objekte
|
private javax.swing.JTable |
_lastUsedSettingsTable
stellt die zuletzt verwendeten Einstellungen dar
|
private javax.swing.table.DefaultTableModel |
_lastUsedSettingsTableModel
das TableModel der zuletzt verwendeten Einstellungen
|
private java.util.prefs.Preferences |
_preferences
speichert den Hauptknoten der Einstellungen
|
private PreselectionLists |
_preselectionLists
speichert die PreselectionLists, damit Objekte anhand der Einstellung ausgewählt werden können
|
private PreselectionTree |
_preselectionTree
speichert den PreselectionTree, damit ein Pfad vorausgewählt werden kann
|
private javax.swing.JButton |
_saveAsButton
der Button speichert die Einstellungen unter einem neuen Namen
|
private java.util.prefs.Preferences |
_savedPreferences
speichert den Knoten mit den gespeicherten Einstellungen
|
private java.util.List<SettingsData> |
_savedSettingsList
speichert alle gespeicherten Einstellungen als SettingsData-Objekte
|
private javax.swing.JTable |
_savedSettingsTable
stellt die gespeicherten Einstellungen dar
|
private javax.swing.table.DefaultTableModel |
_savedSettingsTableModel
das TableModel der gespeicherten Einstellungen
|
private javax.swing.JPanel |
_settingsPanel
speichert das Panel mit den Tabellen für die Einstellungen
|
private javax.swing.JButton |
_startButton
der Button startet das Modul mit den ausgewählten Einstellungen
|
Constructor and Description |
---|
SettingsHandler(GenericTestMonitorApplication application,
PreselectionPanel preselectionPanel)
Der Konstruktor erstellt ein SettingsHandler-Objekt.
|
Modifier and Type | Method and Description |
---|---|
private void |
actualizeTable()
Werden Einträge in den Preferences hinzugefügt, dann werden die Tabellen aktualisiert.
|
private void |
checkButtonStatus()
Überprüft, ob die Buttons in den Einstellungen anwählbar oder nicht anwählbar sein sollen.
|
void |
clearSelection()
Falls die Selektion in beiden Tabellen aufgehoben werden soll, kann diese Methode aufgerufen werden.
|
private javax.swing.JPanel |
createExportImportPanel()
Erstellt das Panel mit dem Button “Selektion exportieren”, damit die ausgewählten Einstellungen im XML-Format exportiert werden können und dem Button “Einstellungen importieren”, damit Einstellungen im XML-Format übernommen werden können.
|
private javax.swing.JPanel |
createLastUsedSettingsPanel()
Erstellt ein Panel mit einer Tabelle, die alle zuletzt verwendeten Einstellungen anzeigt.
|
private javax.swing.JPanel |
createModuleButtonPanel()
Erstellt das Panel mit den Buttons zum Starten, Speichern, Ändern und Löschen der Einstellungen.
|
private javax.swing.JPanel |
createSavedSettingsPanel()
Erstellt ein Panel mit einer Tabelle, die alle gespeicherten Einstellungen anzeigt.
|
private SettingsData |
createSettingsData(java.util.prefs.Preferences preferences)
Diese Methode erstellt aus einem Knoten in den Preferences ein SettingsData-Objekt.
|
private java.lang.String |
getOldestEntry(java.lang.String[] children)
Gibt den ältesten Eintrag aus einem children-Array zurück.
|
private int |
getRowNumber(java.util.prefs.Preferences prefs,
java.lang.String node)
Ermittelt in den übergebenen Preferences die Position des Knotens node.
|
javax.swing.JPanel |
getSettingsPanel()
Das durch den Konstruktor erzeugte Panel kann hier geholt werden.
|
void |
loadAllSettings()
Diese Methode lädt alle Einstellungen aus den Preferences und stellt sie in den Tabellen des SettingsHandlers dar.
|
private java.util.Vector |
loadLastUsedSettingsTableEntry(SettingsData settingsData)
Aus einem Einstellungsobjekt (SettingsData) wird ein Tabelleneintrag für die zuletzt verwendeten Einstellungen erstellt.
|
private java.util.Vector |
loadSavedSettingsTableEntry(SettingsData settingsData)
Aus einem Einstellungsobjekt (SettingsData) wird ein Tabelleneintrag für die gespeicherten Einstellungen erstellt.
|
private java.util.Vector<java.lang.String> |
loadTableEntry(SettingsData settingsData)
Lädt die übergebene Einstellung und erzeugt einen Eintrag für eine der beiden Tabellen (“Gespeicherte Einstellungen” oder “Zuletzt verwendete Einstellungen”).
|
private void |
preselectListsBySettings(SettingsData settingsData)
Selektiert die Elemente in den Listen der
PreselectionLists anhand der ausgewählten Einstellung. |
private void |
readPreferences(java.io.BufferedReader reader)
Um den KV richtig zu importieren, muss die Eingabe bearbeitet werden.
|
void |
saveSettings(SettingsData settingsData)
Mit dieser Methode können Einstellungsdaten übergeben werden.
|
private void |
setButtonWidth()
Setzt die maximale Breite der benutzten Buttons.
|
void |
setMaximumNumberOfLastUsedSettings(int number)
Mit dieser Methode kann festgelegt werden, wieviele zuletzt verwendeten Einstellungen gespeichert werden sollen.
|
private static final Debug _debug
der Debug-Logger
private final javax.swing.JTable _savedSettingsTable
stellt die gespeicherten Einstellungen dar
private final javax.swing.JTable _lastUsedSettingsTable
stellt die zuletzt verwendeten Einstellungen dar
private final javax.swing.table.DefaultTableModel _savedSettingsTableModel
das TableModel der gespeicherten Einstellungen
private final javax.swing.table.DefaultTableModel _lastUsedSettingsTableModel
das TableModel der zuletzt verwendeten Einstellungen
private final javax.swing.JButton _startButton
der Button startet das Modul mit den ausgewählten Einstellungen
private final javax.swing.JButton _saveAsButton
der Button speichert die Einstellungen unter einem neuen Namen
private final javax.swing.JButton _changeButton
der Button ruft den Dialog des zu den Einstellungen passenden Moduls auf
private final javax.swing.JButton _deleteButton
der Button löscht die gewählte Einstellung aus der Liste
private final javax.swing.JButton _exportButton
der Button exportiert die ausgewählten Einstellungen
private final javax.swing.JButton _importButton
der Button importiert Einstellungen aus einer XML-Datei
private final DataModel _dataModel
speichert das Datenmodell des Datenverteilers
private final java.util.prefs.Preferences _preferences
speichert den Hauptknoten der Einstellungen
private final java.util.prefs.Preferences _lastUsedPreferences
speichert den Knoten mit den zuletzt verwendeten Einstellungen
private final java.util.prefs.Preferences _savedPreferences
speichert den Knoten mit den gespeicherten Einstellungen
private javax.swing.JPanel _settingsPanel
speichert das Panel mit den Tabellen für die Einstellungen
private final PreselectionLists _preselectionLists
speichert die PreselectionLists, damit Objekte anhand der Einstellung ausgewählt werden können
private final PreselectionTree _preselectionTree
speichert den PreselectionTree, damit ein Pfad vorausgewählt werden kann
private final GenericTestMonitorApplication _application
speichert ein Objekt der Applikation
private final java.util.List<SettingsData> _savedSettingsList
speichert alle gespeicherten Einstellungen als SettingsData-Objekte
private final java.util.List<SettingsData> _lastUsedSettingsList
speichert alle zuletzt verwendeten Einstellungen als SettingsData-Objekte
private boolean _ignoreListChangeSelectionEvent
public SettingsHandler(GenericTestMonitorApplication application, PreselectionPanel preselectionPanel)
Der Konstruktor erstellt ein SettingsHandler-Objekt. Es wird ein Objekt der Applikation übergeben, damit darüber auf die Module und die Verbindung zum Datenverteiler zugegriffen werden kann. Das PreselectionPanel
wird übergeben, da bei Anwahl einer Einstellung in den Tabellen, die Datenidentifikation, die Simulationsvariante und der Pfad im Baum
vorausgewählt werden.
Zusätzlich wir das Panel erzeugt, welches die beiden Tabellen mit den gespeicherten und zuletzt verwendeten Einstellungen darstellt. Wird eine Einstellung in den Tabellen ausgewählt, dann kann sie direkt gestartet, umbenannt bzw. gespeichert, geändert und gelöscht werden. Dieses Panel kann mittels der Methode getSettingsPanel()
abgefragt werden.
application
- die ApplikationpreselectionPanel
- das Panel mit der vollständigen DatenidentifikationgetSettingsPanel()
public javax.swing.JPanel getSettingsPanel()
Das durch den Konstruktor erzeugte Panel kann hier geholt werden. Es stellt Tabellen zur Verfügung, die gespeicherte und zuletzt verwendete Einstellungen anzeigt. Diese können gestartet, gelöscht, geändert, gespeichert, exportiert und importiert werden.
Module
private void setButtonWidth()
Setzt die maximale Breite der benutzten Buttons.
public void clearSelection()
Falls die Selektion in beiden Tabellen aufgehoben werden soll, kann diese Methode aufgerufen werden.
private void actualizeTable()
Werden Einträge in den Preferences hinzugefügt, dann werden die Tabellen aktualisiert.
private int getRowNumber(java.util.prefs.Preferences prefs, java.lang.String node) throws java.util.prefs.BackingStoreException
Ermittelt in den übergebenen Preferences die Position des Knotens node.
prefs
- wo gesucht werden sollnode
- wonach gesucht werden solljava.util.prefs.BackingStoreException
- falls beim Zugriff auf das Speicherungssystem ein Fehler aufgetreten istprivate javax.swing.JPanel createSavedSettingsPanel()
Erstellt ein Panel mit einer Tabelle, die alle gespeicherten Einstellungen anzeigt.
private javax.swing.JPanel createLastUsedSettingsPanel()
Erstellt ein Panel mit einer Tabelle, die alle zuletzt verwendeten Einstellungen anzeigt.
private void preselectListsBySettings(SettingsData settingsData)
Selektiert die Elemente in den Listen der PreselectionLists
anhand der ausgewählten Einstellung. Die erste markierte Einstellung wird berücksichtigt.
settingsData
- die Einstellung, die in den Listen vorausgewählt werden sollprivate void checkButtonStatus()
Überprüft, ob die Buttons in den Einstellungen anwählbar oder nicht anwählbar sein sollen.
private javax.swing.JPanel createExportImportPanel()
Erstellt das Panel mit dem Button “Selektion exportieren”, damit die ausgewählten Einstellungen im XML-Format exportiert werden können und dem Button “Einstellungen importieren”, damit Einstellungen im XML-Format übernommen werden können.
private void readPreferences(java.io.BufferedReader reader) throws java.io.IOException, java.util.prefs.InvalidPreferencesFormatException
Um den KV richtig zu importieren, muss die Eingabe bearbeitet werden. Hierzu wird die XML-Datei zeilenweise eingelesen, und die zweite Zeile, die mit <node name=
beginnt, ersetzt durch eine Zeile, die den korrekten KV beinhaltet. Anschließend werden die Einstellungen mit Preferences.importPreferences(java.io.InputStream)
geladen.
reader
- Reader für die XML-Dateijava.io.IOException
- IO-Fehlerjava.util.prefs.InvalidPreferencesFormatException
- Fehler im Format der importierten Dateiprivate javax.swing.JPanel createModuleButtonPanel()
Erstellt das Panel mit den Buttons zum Starten, Speichern, Ändern und Löschen der Einstellungen.
private SettingsData createSettingsData(java.util.prefs.Preferences preferences) throws java.util.prefs.BackingStoreException
Diese Methode erstellt aus einem Knoten in den Preferences ein SettingsData-Objekt.
preferences
- einen gespeicherten Eintrag der Einstellungenjava.util.prefs.BackingStoreException
- Falls beim Zugriff auf das Speicherungssystem Fehler aufgetreten sind.public void setMaximumNumberOfLastUsedSettings(int number)
Mit dieser Methode kann festgelegt werden, wieviele zuletzt verwendeten Einstellungen gespeichert werden sollen. Default-Wert ist 20.
number
- Anzahl, wieviele der zuletzt verwendeten Einstellungen gespeichert werdenpublic void saveSettings(SettingsData settingsData)
Mit dieser Methode können Einstellungsdaten übergeben werden. Diese werden dann in den Preferences gespeichert und in den Tabellen angezeigt.
settingsData
- Einstellungsdatenprivate java.lang.String getOldestEntry(java.lang.String[] children)
Gibt den ältesten Eintrag aus einem children-Array zurück. Hilfsfunktion von saveSettings.
children
- Ein Array der Form {“0000000000”,“0000000001”,“0000000002”}
“0000000000”
public void loadAllSettings() throws java.util.prefs.BackingStoreException
Diese Methode lädt alle Einstellungen aus den Preferences und stellt sie in den Tabellen des SettingsHandlers dar. Diese Methode kann aufgerufen werden, nachdem das Panel dargestellt wurde. Damit hat der Anwender eine schnellere Rückmeldung der Anwendung.
Ist die Einstellung fehlerhaft, dann wird sie aus den Preferences gelöscht und in der Tabelle nicht angezeigt.
java.util.prefs.BackingStoreException
- falls beim Zugriff auf das Speicherungssystem ein Fehler aufgetreten istprivate java.util.Vector loadLastUsedSettingsTableEntry(SettingsData settingsData)
Aus einem Einstellungsobjekt (SettingsData) wird ein Tabelleneintrag für die zuletzt verwendeten Einstellungen erstellt.
settingsData
- die anzuzeigenden Einstellungenprivate java.util.Vector loadSavedSettingsTableEntry(SettingsData settingsData)
Aus einem Einstellungsobjekt (SettingsData) wird ein Tabelleneintrag für die gespeicherten Einstellungen erstellt.
settingsData
- die anzuzeigenden Einstellungenprivate java.util.Vector<java.lang.String> loadTableEntry(SettingsData settingsData)
Lädt die übergebene Einstellung und erzeugt einen Eintrag für eine der beiden Tabellen (“Gespeicherte Einstellungen” oder “Zuletzt verwendete Einstellungen”).
settingsData
- die anzuzeigende Einstellung