Für die Verwendung von Tabellen wird ein IDataBook als Datenhalter(Model) benötigt. In den meisten Fällen wird ein RemoteDataBook verwendet um Daten aus einer Datenbanktabelle zur Verfügung zu stellen. Doch nicht in allen Fällen existiert eine Tabelle in der Datenbank, für die Daten die dargestellt werden sollen.
In diesem Fall kann das MemDataBook verwendet werden. Es handelt sich dabei um eine IDataBook Implementierung die mit Daten im Hauptspeicher arbeitet. Eine Server Verbindung wird dafür nicht benötigt und es findet auch keinerlei Kommunikation zwischen Client und Server statt.
Wir benötigen eine Tabelle für die Anzeige aller Java System Properties.
MemDataBook mdbSystem = new MemDataBook(); mdbSystem.setName("SYSTEM"); IRowDefinition rowdef = mdbSystem.getRowDefinition(); rowdef.addColumnDefinition(new ColumnDefinition("KEY")); rowdef.addColumnDefinition(new ColumnDefinition("VALUE")); rowdef.getColumnDefinition("KEY").setLabel("Parameter"); rowdef.getColumnDefinition("VALUE").setLabel("Value"); mdbSystem.open(); try { Properties props = System.getProperties(); for (Map.Entry<Object, Object> entry : props.entrySet()) { try { mdbSystem.insert(false); mdbSystem.setValue("KEY", entry.getKey()); mdbSystem.setValue("VALUE", entry.getValue()); } catch (SecurityException sec) { //nothing to be done } } } catch (SecurityException se) { //read only allowed properties //... //... }
Das MemDataBook muss geöffnet werden, damit es integriert werden kann. Bevor es geöffnet wird, sollten die gewünschten Spalten definiert werden, da im Standard Fall keine Spalten vorhanden sind.
Die Definition von Spalten wird mit
rowdef.addColumnDefinition(new ColumnDefinition("KEY"));
durchgeführt. Jedes IDataBook besitzt eine IRowDefinition für die Verwaltung der verfügbaren Spalten. Eine Spalte wird definiert mit einer ColumnDefinition. Diese wiederum beinhaltet zumindest den Spaltennamen und den Datentyp (Text, Zahl, Datum, usw.)