Mercurial > dive4elements > river
annotate artifacts/doc/datacage-config-manual/content.tex @ 6138:1d690acf1fdb
Add debug output in static d4e artifact ctor
Helps to read from the debug output if an artifact inherits
static artifact or not
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 31 May 2013 15:24:53 +0200 |
parents | 5aa05a7a34b7 |
children |
rev | line source |
---|---|
3244
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
1 \section{Configuration of the Datacage} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
2 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
3 \subsection{Tasks and Recommendation types of the datacage} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
4 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
5 The datacage serves two purposes. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
6 It handles automatic 'recommendations', which are instructions |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
7 sent by the client to add newly created artifacts to the collection. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
8 From a user perspective, these artifacts mainly represent curves or data |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
9 points in the resulting diagrams. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
10 The second task is to let the user add already existing artifacts (i.e. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
11 previous calculations) or new artifacts with access to related data. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
12 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
13 Irrelevant of the type of elements (recommendations or user picked data) the |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
14 datacage can iterate over possible artifacts by accessing its own database. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
15 Thus, to create a list of matching entries, database queries are used. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
16 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
17 \subsection{Structure of the datacage configuration file meta-data.conf} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
18 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
19 The datacages behaviour is defined in the file conf/meta-data.xml . |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
20 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
21 In meta-data.xml, database queries are defined as \verb!<dc:statement>! elements, |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
22 for example |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
23 \begin{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
24 <dc:statement> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
25 SELECT id AS prot_id, |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
26 description AS prot_description |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
27 FROM wsts WHERE kind = 1 AND river_id = ${river_id} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
28 </dc:statement> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
29 \end{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
30 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
31 As can be seen from the example, the datacage configuration file can maintain |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
32 its own stack of variables (\${river\_id} in above example). |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
33 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
34 The database query will usually deliver one or many results, over which is |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
35 iterated using the \verb!<dc:elements>! elements. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
36 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
37 Information from this results can be used for two goals. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
38 It can be taken as output, in which |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
39 case the client will either request the creation of these artifacts (considering |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
40 recommendations), or shown by the client in a the 'datacage widget', |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
41 the graphical representation of data which can be added in the current |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
42 context. The later is seen when the user clicks on the Datacage button in |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
43 a diagram. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
44 Or information can be used to feed a second (or third...) database query. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
45 Following above example: |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
46 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
47 \begin{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
48 <dc:statement> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
49 SELECT id AS prot_id, |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
50 description AS prot_description |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
51 FROM wsts WHERE kind = 1 AND river_id = ${river_id} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
52 </dc:statement> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
53 <dc:elements> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
54 <additional> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
55 <dc:attribute name="name" value="${prot_description}"/> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
56 <dc:context> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
57 <dc:statement> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
58 SELECT id AS prot_column_id, |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
59 name AS prot_column_name, |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
60 position AS prot_rel_pos |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
61 FROM wst_columns WHERE wst_id = ${prot_id} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
62 ORDER by position |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
63 </dc:statement> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
64 <!-- ... --> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
65 \end{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
66 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
67 In both cases, an \verb!<dc:elements>! element makes database queries available. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
68 Also |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
69 note how the variables are defined in the first query and reused in the second |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
70 query (\$\{prot\_it\}). |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
71 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
72 Any alement not prefixed with "dc" represents a (sub-) node in the resulting |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
73 tree. The client will display these nodes and maybe subnodes in the datacage |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
74 widget - \verb!<additional>! in above example. The elements name is translated by |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
75 the client. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
76 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
77 While iterating the final results, \verb!<dc:attributes>! have to be specified |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
78 to define how the artifact is to be created. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
79 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
80 \begin{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
81 <dc:elements> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
82 <column> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
83 <dc:attribute name="name" value="${prot_column_name}"/> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
84 <dc:attribute name="ids" value="additionals-wstv-${prot_rel_pos}-${prot_id}"/> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
85 <dc:attribute name="factory" value="staticwkms"/> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
86 </column> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
87 </dc:elements> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
88 \end{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
89 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
90 The "name" attribute is what is to be displayed in the client, the "ids" are given |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
91 to the server and pass important information about the chosen data. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
92 The "factory" is chosen according to the type of data displayed. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
93 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
94 So far, three other elements have not yet been mentioned: \verb!<dc:comment>!, |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
95 \verb!<dc:if>! and the \verb!<dc:when><dc:otherwise>! structure. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
96 \verb!<dc:comment>! is an element to allow comments. Choose these over standard |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
97 \verb=<!-- -->= xml comments, because they are not transferred to the client. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
98 \verb!<dc:if>! and \verb!<dc:when>! allow control (rather: definition) flow within |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
99 the configuration and work in analogy to the XSL-elements \verb!<xsl:if>! |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
100 and \verb!<xsl:when>!. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
101 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
102 When dealing with the behaviour specification of the datacage, multiple |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
103 interpretations for the term "context" are possible. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
104 A \verb!<dc:context>! element essentially means a database binding. Thus each |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
105 query (\verb!<dc:statement>!) needs to be nested in its own context. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
106 Furthermore, two types of databases with own bindings exist: |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
107 The "system" (default for \verb!<dc:context>!, \verb!<dc:context connection="system">!) |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
108 context allows queries related to the backend database with existing |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
109 data (e.g. measurements). |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
110 The "user" context (\verb!<dc:context connection="user">!) allows queries against |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
111 the database which stores information about already existing artifacts and |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
112 calculations. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
113 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
114 Another connotation for the term "context" is the situation from which |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
115 the datacage is queried. The standard case is a from the datacage widget. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
116 When the user opens the datacage from the graphical client, this is done |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
117 from one of possible multiple diagrams. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
118 When the datacage is queried, it gets as an argument the "out" of |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
119 the current artifact. The out corresponds to the diagram type. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
120 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
121 For example the inner block of |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
122 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
123 \begin{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
124 <dc:if test="dc:contains($artifact-outs, 'longitudinal_section')"> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
125 <longitudinal_section> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
126 <dc:call-macro name="annotations"/> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
127 </longitudinal_section> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
128 </dc:if> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
129 \end{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
130 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
131 will only be executed if called from the datacage within a |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
132 longitudinal\_section diagram. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
133 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
134 In the given example another concept of the datacage configuration is |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
135 encountered: Macros. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
136 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
137 Macros help to avoid duplication of parts of the document. As the datacage |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
138 of some diagrams should include the same type of data, the same query should |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
139 be executed in multiple situations. |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
140 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
141 Therefore a macro can be defined, like in |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
142 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
143 \begin{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
144 <dc:macro name="basedata_4_heightmarks-wq"> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
145 <heightmarks> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
146 <dc:context> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
147 <dc:statement> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
148 SELECT id AS prot_id, |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
149 description AS prot_description |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
150 FROM wsts WHERE kind = 4 AND river_id = ${river_id} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
151 </dc:statement> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
152 <dc:elements> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
153 <!-- ... --> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
154 </dc:macro> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
155 \end{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
156 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
157 and invoked from another location within the document, e.g. with |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
158 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
159 \begin{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
160 |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
161 <dc:call-macro name="basedata_4_heightmarks"/> |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
162 \end{lstlisting} |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
163 . |
1a79d47ed14b
Copied content from doc/datacage.txt to doc/datacage-config-manual (texed).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
164 |