Trace: • Editoren mit Tabellen verknüpfen
In Datenbankapplikationen muss die Bearbeitung von Daten einerseits direkt in Tabellen möglich sein und andererseits ist eine Formularbasierte Bearbeitung wünschenswert.
Die Formularbasierte Eingabe von Daten erhöht die Übersicht und ermöglicht Gruppierungen die mit Tabellen nur schwer möglich sind.
Das aktive Model von JVx erlaubt die Anzeige und Bearbeitung von Daten auf unterschiedlichste Art und Weise, egal ob es sich um eine Tabelle, eine Grafik oder einen Text Editor handelt. Die Daten werden in allen Fällen vom Model verwaltet. Eine Änderung im Model wirkt sich auf alle registrierten Komponenten aus. Somit sind die angezeigten Daten immer synchron.
Anwendungsbeispiel
Wir benötigen in unserer Applikation eine Maske für die Anzeige und Bearbeitung von Kontaktdaten. Die Eingabe soll tabellarisch oder mit einem Formular durchgeführt werden.
Wir zeigen nur die Definition der Editoren für das Formular. Details zur tabellarischen Anzeige sind hier zu finden.
Die Definition der Editoren:
RemoteDataBook rdbContacts = new RemoteDataBook(); rdbContacts.setDataSource(dataSource); rdbContacts.setName("contacts"); rdbContacts.open(); UIEditor edtFirstName = new UIEditor(); edtFirstName.setDataRow(rdbContacts); edtFirstName.setColumnName("FIRSTNAME"); UIEditor edtLastName = new UIEditor(); edtLastName.setDataRow(rdbContacts); edtLastName.setColumnName("LASTNAME"); UIEditor edtStreet = new UIEditor(); edtStreet.setDataRow(rdbContacts); edtStreet.setColumnName("STREET"); UIEditor editNr = new UIEditor(); editNr.setDataRow(rdbContacts); editNr.setColumnName("NR");
Es ist ausreichend wenn einem UIEditor die IDataRow und die Spaltenbezeichnung gesetzt wird. Welcher Editor dann tatsächlich verwendet wird, hängt vom Datentyp der Spalte ab. In unserem Beispiel wird für die NR ein Number Editor verwendet und für alle anderen Felder ein Text Editor.
Bei Datum Spalten wird ein Date Editor angeboten.
Der UIEditor kann einfach zum Layout/Formular hinzugefügt werden, z.B.:
panel.add(editNr);
Natürlich sollte auf die Eigenschaften des Layouts Rücksicht genommen werden!