de.bsvrz.pat.sysbed.main
Class SettingsHandler

java.lang.Object
  extended by de.bsvrz.pat.sysbed.main.SettingsHandler

public class SettingsHandler
extends 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.

Author:
Kappich Systemberatung
See Also:
SettingsHandler(de.bsvrz.pat.sysbed.main.GenericTestMonitorApplication, de.bsvrz.pat.sysbed.preselection.panel.PreselectionPanel), saveSettings(de.bsvrz.pat.sysbed.plugins.api.settings.SettingsData), loadAllSettings(), getSettingsPanel()

Nested Class Summary
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.
 
Field Summary
private  GenericTestMonitorApplication _application
          speichert ein Objekt der Applikation
private  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  JButton _deleteButton
          der Button löscht die gewählte Einstellung aus der Liste
private  JButton _exportButton
          der Button exportiert die ausgewählten Einstellungen
private  JButton _importButton
          der Button importiert Einstellungen aus einer XML-Datei
private  Preferences _lastUsedPreferences
          speichert den Knoten mit den zuletzt verwendeten Einstellungen
private  List<SettingsData> _lastUsedSettingsList
          speichert alle zuletzt verwendeten Einstellungen als SettingsData-Objekte
private  JTable _lastUsedSettingsTable
          stellt die zuletzt verwendeten Einstellungen dar
private  DefaultTableModel _lastUsedSettingsTableModel
          das TableModel der zuletzt verwendeten Einstellungen
private  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  JButton _saveAsButton
          der Button speichert die Einstellungen unter einem neuen Namen
private  Preferences _savedPreferences
          speichert den Knoten mit den gespeicherten Einstellungen
private  List<SettingsData> _savedSettingsList
          speichert alle gespeicherten Einstellungen als SettingsData-Objekte
private  JTable _savedSettingsTable
          stellt die gespeicherten Einstellungen dar
private  DefaultTableModel _savedSettingsTableModel
          das TableModel der gespeicherten Einstellungen
private  JPanel _settingsPanel
          speichert das Panel mit den Tabellen für die Einstellungen
private  JButton _startButton
          der Button startet das Modul mit den ausgewählten Einstellungen
 
Constructor Summary
SettingsHandler(GenericTestMonitorApplication application, PreselectionPanel preselectionPanel)
          Der Konstruktor erstellt ein SettingsHandler-Objekt.
 
Method Summary
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  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  JPanel createLastUsedSettingsPanel()
          Erstellt ein Panel mit einer Tabelle, die alle zuletzt verwendeten Einstellungen anzeigt.
private  JPanel createModuleButtonPanel()
          Erstellt das Panel mit den Buttons zum Starten, Speichern, Ändern und Löschen der Einstellungen.
private  JPanel createSavedSettingsPanel()
          Erstellt ein Panel mit einer Tabelle, die alle gespeicherten Einstellungen anzeigt.
private  SettingsData createSettingsData(Preferences preferences)
          Diese Methode erstellt aus einem Knoten in den Preferences ein SettingsData-Objekt.
private  int getRowNumber(Preferences prefs, String node)
          Ermittelt in den übergebenen Preferences die Position des Knotens node.
 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  Vector loadLastUsedSettingsTableEntry(SettingsData settingsData)
          Aus einem Einstellungsobjekt (SettingsData) wird ein Tabelleneintrag für die zuletzt verwendeten Einstellungen erstellt.
private  Vector loadSavedSettingsTableEntry(SettingsData settingsData)
          Aus einem Einstellungsobjekt (SettingsData) wird ein Tabelleneintrag für die gespeicherten Einstellungen erstellt.
private  Vector<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.
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_debug

private static final Debug _debug
der Debug-Logger


_savedSettingsTable

private final JTable _savedSettingsTable
stellt die gespeicherten Einstellungen dar


_lastUsedSettingsTable

private final JTable _lastUsedSettingsTable
stellt die zuletzt verwendeten Einstellungen dar


_savedSettingsTableModel

private final DefaultTableModel _savedSettingsTableModel
das TableModel der gespeicherten Einstellungen


_lastUsedSettingsTableModel

private final DefaultTableModel _lastUsedSettingsTableModel
das TableModel der zuletzt verwendeten Einstellungen


_startButton

private final JButton _startButton
der Button startet das Modul mit den ausgewählten Einstellungen


_saveAsButton

private final JButton _saveAsButton
der Button speichert die Einstellungen unter einem neuen Namen


_changeButton

private final JButton _changeButton
der Button ruft den Dialog des zu den Einstellungen passenden Moduls auf


_deleteButton

private final JButton _deleteButton
der Button löscht die gewählte Einstellung aus der Liste


_exportButton

private final JButton _exportButton
der Button exportiert die ausgewählten Einstellungen


_importButton

private final JButton _importButton
der Button importiert Einstellungen aus einer XML-Datei


_dataModel

private final DataModel _dataModel
speichert das Datenmodell des Datenverteilers


_preferences

private final Preferences _preferences
speichert den Hauptknoten der Einstellungen


_lastUsedPreferences

private final Preferences _lastUsedPreferences
speichert den Knoten mit den zuletzt verwendeten Einstellungen


_savedPreferences

private final Preferences _savedPreferences
speichert den Knoten mit den gespeicherten Einstellungen


_settingsPanel

private JPanel _settingsPanel
speichert das Panel mit den Tabellen für die Einstellungen


_preselectionLists

private final PreselectionLists _preselectionLists
speichert die PreselectionLists, damit Objekte anhand der Einstellung ausgewählt werden können


_preselectionTree

private final PreselectionTree _preselectionTree
speichert den PreselectionTree, damit ein Pfad vorausgewählt werden kann


_application

private final GenericTestMonitorApplication _application
speichert ein Objekt der Applikation


_savedSettingsList

private final List<SettingsData> _savedSettingsList
speichert alle gespeicherten Einstellungen als SettingsData-Objekte


_lastUsedSettingsList

private final List<SettingsData> _lastUsedSettingsList
speichert alle zuletzt verwendeten Einstellungen als SettingsData-Objekte

Constructor Detail

SettingsHandler

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.

Parameters:
application - die Applikation
preselectionPanel - das Panel mit der vollständigen Datenidentifikation
See Also:
getSettingsPanel()
Method Detail

getSettingsPanel

public 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.

Returns:
ein Panel für die Einstellungen der Module

setButtonWidth

private void setButtonWidth()
Setzt die maximale Breite der benutzten Buttons.


clearSelection

public void clearSelection()
Falls die Selektion in beiden Tabellen aufgehoben werden soll, kann diese Methode aufgerufen werden.


actualizeTable

private void actualizeTable()
Werden Einträge in den Preferences hinzugefügt, dann werden die Tabellen aktualisiert.


getRowNumber

private int getRowNumber(Preferences prefs,
                         String node)
                  throws BackingStoreException
Ermittelt in den übergebenen Preferences die Position des Knotens node.

Parameters:
prefs - wo gesucht werden soll
node - wonach gesucht werden soll
Returns:
die Zeilennummer des Knotens, -1 falls Knoten nicht vorhanden
Throws:
BackingStoreException - falls beim Zugriff auf das Speicherungssystem ein Fehler aufgetreten ist

createSavedSettingsPanel

private JPanel createSavedSettingsPanel()
Erstellt ein Panel mit einer Tabelle, die alle gespeicherten Einstellungen anzeigt.

Returns:
ein Panel mit Tabelle für die gespeicherten Einstellungen

createLastUsedSettingsPanel

private JPanel createLastUsedSettingsPanel()
Erstellt ein Panel mit einer Tabelle, die alle zuletzt verwendeten Einstellungen anzeigt.

Returns:
ein Panel mit Tabelle für die zuletzt verwendeten Einstellungen

preselectListsBySettings

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.

Parameters:
settingsData - die Einstellung, die in den Listen vorausgewählt werden soll

checkButtonStatus

private void checkButtonStatus()
Überprüft, ob die Buttons in den Einstellungen anwählbar oder nicht anwählbar sein sollen.


createExportImportPanel

private 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.

Returns:
das Panel mit den Export- / Import- Buttons

createModuleButtonPanel

private JPanel createModuleButtonPanel()
Erstellt das Panel mit den Buttons zum Starten, Speichern, Ändern und Löschen der Einstellungen.

Returns:
das Panel mit den Buttons zum Starten, Speichern, Ändern und Löschen der Einstellungen

createSettingsData

private SettingsData createSettingsData(Preferences preferences)
                                 throws BackingStoreException
Diese Methode erstellt aus einem Knoten in den Preferences ein SettingsData-Objekt.

Parameters:
preferences - einen gespeicherten Eintrag der Einstellungen
Returns:
ein SettingsData-Objekt
Throws:
BackingStoreException - Falls beim Zugriff auf das Speicherungssystem Fehler aufgetreten sind.

setMaximumNumberOfLastUsedSettings

public void setMaximumNumberOfLastUsedSettings(int number)
Mit dieser Methode kann festgelegt werden, wieviele zuletzt verwendeten Einstellungen gespeichert werden sollen. Default-Wert ist 20.

Parameters:
number - Anzahl, wieviele der zuletzt verwendeten Einstellungen gespeichert werden

saveSettings

public void saveSettings(SettingsData settingsData)
Mit dieser Methode können Einstellungsdaten übergeben werden. Diese werden dann in den Preferences gespeichert und in den Tabellen angezeigt.

Parameters:
settingsData - Einstellungsdaten

loadAllSettings

public void loadAllSettings()
                     throws 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.

Throws:
BackingStoreException - falls beim Zugriff auf das Speicherungssystem ein Fehler aufgetreten ist

loadLastUsedSettingsTableEntry

private Vector loadLastUsedSettingsTableEntry(SettingsData settingsData)
Aus einem Einstellungsobjekt (SettingsData) wird ein Tabelleneintrag für die zuletzt verwendeten Einstellungen erstellt.

Parameters:
settingsData - die anzuzeigenden Einstellungen
Returns:
einen Tabelleneintrag

loadSavedSettingsTableEntry

private Vector loadSavedSettingsTableEntry(SettingsData settingsData)
Aus einem Einstellungsobjekt (SettingsData) wird ein Tabelleneintrag für die gespeicherten Einstellungen erstellt.

Parameters:
settingsData - die anzuzeigenden Einstellungen
Returns:
einen Tabelleneintrag

loadTableEntry

private Vector<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").

Parameters:
settingsData - die anzuzeigende Einstellung
Returns:
einen Eintrag für eine Tabelle