Mercurial > dive4elements > river
comparison artifacts/doc/datacage_ref_de.rst @ 7401:bbf758e594bb
Datacage reference doc: Explain dc:container-context and dc:properties.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Mon, 21 Oct 2013 12:22:40 +0200 |
parents | dd87e0a5f83c |
children | 99312d2b4a20 |
comparison
equal
deleted
inserted
replaced
7400:dd87e0a5f83c | 7401:bbf758e594bb |
---|---|
140 werden übernommen und später beim Auffalten des Datensatzes benutzt. | 140 werden übernommen und später beim Auffalten des Datensatzes benutzt. |
141 | 141 |
142 ``dc:container-context`` Tabellarische Daten aus der Programm-Umgebung | 142 ``dc:container-context`` Tabellarische Daten aus der Programm-Umgebung |
143 ...................................................................... | 143 ...................................................................... |
144 | 144 |
145 **TODO** | 145 .. code:: xml |
146 | 146 |
147 ``dc:properties`` **TODO** | 147 <dc:container-context container="Container"> |
148 ... | |
149 </dc:container-context> | |
150 | |
151 Dies spannt einen Kontext auf einem Container namens Container auf, | |
152 einer listen-ähnlichen Struktur, die als externe Datenquellen in | |
153 Form eines Java-Objekts an den Datenkorb übergeben werden kann. | |
154 Dies müssen Klassen sein, die das Interface ``java.util.Collection`` | |
155 implementieren. Mit diesem Konstrukt ist es möglich, tabellarische | |
156 Ergebnisse von außen in die Auswertung des Datenkorbs zu integrieren. | |
157 Der Container muss hierfür über die Variable ``Container`` zur Verfügung | |
158 gestellt werden. Die Spalten des Tabelle werden über ``dc:properties`` | |
159 definiert. Der Datensatz selbst kann wie gewohnt mittels ``dc:for-each`` | |
160 realisiert werden. | |
161 | |
162 ``dc:properties`` Spaltendefinitionen für externe Daten aus der Programm-Umgebung | |
163 ................................................................................. | |
164 | |
165 .. code:: xml | |
166 | |
167 <dc:container-context container="Container"> | |
168 <dc:properties> | |
169 <dc:property name="name" alias="alias"/> | |
170 </dc:properties> | |
171 </dc:container-context> | |
172 | |
173 Muss innerhalb eines ``dc:container-context`` angegeben werden und enthält eine | |
174 Liste von Attributen der Java-Objekte, die in den Datenkorb eingeblendet werden sollen. | |
175 Die Auflösung der Namen auf der Java-Seite funktioniert nach Konvention von Java-Beans, | |
176 sprich aus ``name`` wird ``getName``. ``alias`` ist optional und weisst explizit einen | |
177 Spaltennamen aus. Dies entspricht im Wesentlichen einen 'AS' bei einem SQL-Statement. | |
178 | |
179 Ein vollständigeres Beispiel könnte in etwa so aussehen. | |
180 Die Java-Seite: | |
181 | |
182 .. code:: java | |
183 | |
184 public class Car { | |
185 | |
186 private String marke; | |
187 private String name; | |
188 | |
189 public Car(String marke, String name) { | |
190 this.marke = marke; | |
191 this.name = name; | |
192 } | |
193 | |
194 public String getMarke() { | |
195 return marke; | |
196 } | |
197 | |
198 public String getName() { | |
199 return name; | |
200 } | |
201 } | |
202 | |
203 // Liste befuellen. | |
204 | |
205 java.util.Container<Car> container = new java.util.ArrayList<Car>(); | |
206 | |
207 container.add(new Car("Volvo", "V80")); | |
208 container.add(new Car("Ferrari", "Testarossa")); | |
209 | |
210 // Dem Datenkorb uebergeben. | |
211 | |
212 parameters.put("CARS", cars); | |
213 | |
214 Das Datenkorb-Schnipsel | |
215 | |
216 .. code:: xml | |
217 | |
218 <dc:container-context container="cars"> | |
219 <dc:properties> | |
220 <dc:property name="marke" alias="brand" /> | |
221 <dc:property name="name" alias="type" /> | |
222 </dc:properties> | |
223 | |
224 <cars> | |
225 <dc:for-each> | |
226 <car type="$type" brand="$brand" /> | |
227 </dc:for-each> | |
228 </cars> | |
229 </dc:container-context> | |
230 | |
231 liefert dann folgende Ausgabe: | |
232 | |
233 .. code:: xml | |
234 | |
235 <cars> | |
236 <car type="V80" brand="Volvo" /> | |
237 <car type="Testarossa" brand="Ferrari" /> | |
238 </cars> | |
239 | |
240 | |
148 | 241 |
149 ``dc:virtual-column`` Virtuelle Spalten definieren | 242 ``dc:virtual-column`` Virtuelle Spalten definieren |
150 .................................................. | 243 .................................................. |
151 | 244 |
152 .. code:: xml | 245 .. code:: xml |