SR-JRC | ein Framework für Java-Richclient-Anwendungen |
| Konfiguration einer ladbaren AnwendungDas allerwichtigste zuerst: damit eine Jar-Datei überhaupt als ladbare Anwendung akzeptiert wird, müssen folgende Punkte erfüllt sein:
Die Grundeinstellungen der Anwendung werden in einem sogenannten Kontext abgelegt. Das ist ein IOC-Container nach springframework und wird wie folgt notiert: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> ... <beans> Die Details obiger Konstruktion sind weniger interessant - wichtig ist nur, dies als Rahmen der Konfigurationsdatei anzusehen Die wichtigen Punkte der Kontext-Definition folgen jetzt. Das ist als erstes die Definition des <bean id="placeHolderConfigurer" class="de.schwarzrot.data.access.pref.PreferencesConfigurer"> <property name="locations" value="de/schwarzrot/sample/app/sample.properties" /> <property name="searchSystemEnvironment" value="true" /> <property name="systemPropertiesMode" value="1" /> <property name="applicationName" value="Beispiel" /> <property name="schemaName" value="sr" /> </bean> Die Erklärung der einzelnen Parameter:
Anmerkung: Java-Preferences werden unter SRJRCFrames transparent gehandhabt, ebenso wie die Unterscheidung zwischen System- und Benutzer-Werten. Von daher sind die Preference-Pfade im Kontext nicht von Belang. Die Um Anwendungen möglichst einfach übersetzen zu können, müssen die Texte unabhängig von den Quelltexten gespeichert werden. Das geschieht in sogenannten Resourcedateien, was nichts anderes bedeutet, als eine Datei, die in ein Java-Archiv gepackt wird, die aber kein übersetzter Javaquelltext ist. Eine Resource kann eine Textdatei (wie z.B. auch die Kontextdefinition), ein Bild oder irgendwas anderes sein. In SRJRCFrames gibt es 2 Hauptklassen von Resourcedateien: einmal die Bilddefinitionen und zum anderen die Anwendungstexte. Letztere werden in der Anwendung über Bei den Textdateien ist es so, dass die Datei "messages.properties" die Standard-Spracheinstellungen enthält. Alle weiteren Sprachdateien erhalten ein Sprachkürzel an den Dateinamen angehängt. Deutsche Texte werden demnach in einer Datei "messages_de.properties" abgelegt. <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>de.schwarzrot.recmgr.app.ui.messages</value> <value>de.schwarzrot.recmgr.app.ui.images</value> </list> </property> </bean> Konfigurationsdaten werden als Preferences gespeichert - schließlich kann nicht aus der Datenbank gelesen werden, wie die Datenbank angesprochen werden soll. Lokale Benutzereinstellungen sind also unabdingbar. Weil die Unterscheidung aus Anwendungssicht aber nicht von Belang ist, werden Konfigurationsentitäten genauso behandelt, wie andere Entitäten auch. Bei Konfigurationsdaten gilt es noch zwischen Systemeinstellungen und Benutzereinstellungen zu unterscheiden. Systemeinstellungen sind für einen normalen Benutzer nicht veränderbar. SRJRCFrames verwendet unterschiedliche Pfade für System- und Benutzereinstellungen. Systemeinstellungen werden mit dem Pfad der Klasse Konfigurations-Entitäten sind Nachfahren der Klasse Gegenüber den "normalen" Entitäten gilt es bei den Konfigurations-Entitäten noch folgendes zu beachten: Eine Konfigurationsentität ist immer eine Systemklasse, deshalb liefert @Override public List Alle Datenzugriffe auf Konfigurationsdaten erfolgen identisch wie alle anderen Entitätszugriffe. Um z.B. die Konfiguration aus dem Anwendungsbeispiel zu speichern, genügen diese Zeilen (die Speicherung erfolgt automatisch bei Beenden einer Anwendung): if (taFactory == null) taFactory = ApplicationServiceProvider.getService(TransactionFactory.class); Transaction ta = taFactory.createTransaction(); ta.add(new TOSave |