From 166c1594c019c5553f7532e791e08b4d5c26a121 Mon Sep 17 00:00:00 2001
From: deva <deva>
Date: Wed, 18 Jul 2007 12:30:14 +0000
Subject: Added a lot of text about the xml structure.

---
 design/xmlformat.tex | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 163 insertions(+)
 create mode 100644 design/xmlformat.tex

(limited to 'design/xmlformat.tex')

diff --git a/design/xmlformat.tex b/design/xmlformat.tex
new file mode 100644
index 0000000..c8be47c
--- /dev/null
+++ b/design/xmlformat.tex
@@ -0,0 +1,163 @@
+\section{XML Formatet}
+Vi starter med et eksempel:
+\begin{verbatim}
+<?xml version="1.0" encoding="UTF-8"?>
+<macro name="test_macro" cpr="1505050505" version="1.0">
+  <window name="mainwindow"
+          caption="This is the mainwindow"
+          width="800"
+          height="600"
+          layout="vbox">
+    <include name="patient"/>
+    <frame name="data_frame" layout="hbox">
+      <label caption="Some field"/>
+      <lineedit name="lineedit1" regexp="[0-9]+"/>
+    </frame>
+    <frame name="bottom_frame" layout="hbox">
+      <button caption="Close window" action="abort"/>
+      <button caption="Commit changes" action="commit"/>
+    </frame>
+  </window>
+</macro>
+\end{verbatim}
+Eksemplet illustrerer flg. funktionaliteter: Makroen og den
+properties, main vinduet, includes, frames, labels, lineedits og
+knapper.\\
+\\
+Det er vigtigt at pointere at alt data i xml dokumentet skal være i
+UTF-8 formatering.\\
+\\
+Includes foregår serverside, dvs. klienten modtager det sammensatte
+dokument og vil dermed aldrig se \verb|<include ...>| tagget.\\
+\\
+Der skelnes mellem input felter og ikke-input felter. Et input felt er
+et felt som ved endt indtastning vil bidrage med input til serveren,
+f.eks. LineEdit, Combo eller CheckBox. Ikke-input felter er
+felter som udelukkende bidrager til layout og brugerens forståelse af
+inputfelterne, f.eks. Frame, Image eler Label.
+
+\subsection{Generelle attributer}
+Alle GUI elementerne i xml dokumentet har flg. attributer:
+\begin{itemize}
+\item \textit{name} - Navnet på elementet. Bruges ved data nedlæsning.
+\item \textit{width} - En integer som sætter bredden af
+  elementet. Hvis den er udeladt benyttes elementets default bredde.
+\item \textit{height} - En integer som sætter højden på
+  elementet. Hvis den er udeladt benyttes elementets default højde.
+\item \textit{layout} - Elementets layout engine. Kan have værdierne
+  ``hbox'' eller ``vbox''. Hvis udeladt benyttes et tomt layout.
+\item \textit{help} - Elementets hjælpetekst. En beskrivende tekst som
+  vises på skærmen når elementet er aktivt. Hvis udeladt vises
+  ingenting.
+\end{itemize}
+
+\subsection{\texttt{window} elementet}
+Et vindue benyttes som moder element, til at indsætte andre elementer
+i. Det vil optræde som et vindue på skærmen med kanter, vinduestitel,
+ikon osv.\\
+Et vindue har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i labelen. Hvis
+  udeladt vises ingen tekst i elementet.
+\item \textit{fixed} - Angiver om vinduet kan skaleres eller om det er
+  statisk. Kan have værdierne ``true'' eller ``false''. Hvis udeladt
+  vil vinduet kunne skaleres.
+\end{itemize}
+
+\subsection{\texttt{label} elementet}
+En label benyttes til at indsætte beskrivejnde tekst i makroen.\\
+En label har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i labelen. Hvis
+  udeladt vises ingen tekst i elementet.
+\item \textit{alignment} - Justeringen af teksten. Kan have værdierne
+  ``left'', ``right'' eller ``center''. Hvis udeladt benyttes ``left''.
+\end{itemize}
+
+\subsection{\texttt{frame} elementet}
+En frame benyttes til at indsætte nestede elementer i makroen, såsom
+gruperinger af radio buttons.\\
+En frame har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i framen. Hvis
+  udeladt vises framen som en tom ramme.
+\item \textit{border} - Elementets kant type. Kan have værdierne
+  ``plain'' eller ``raised'' Hvis udeladt benyttes laves ingen kant.
+\item \textit{padding} - En integer som er størelsen på paddingen på
+  elementet. Hvis udeladt benyttes elementets default padding.
+\item \textit{margin} - En integer som er størelsen på elementets
+  margin. Hvis udeladt benyttes elementets default margin.
+\end{itemize}
+
+\subsection{\texttt{lineedit} elementet}
+En lineedit benyttes til at læse input fra brugeren i kraft tekst.\\
+Lineediten kan have et regulært udtryk tilknyttet, som validerer input
+mens der tastes og ændrer feltets baggrundsfarve afhængig af om feltet
+indeholder valid data eller ej.\\
+Feltet er et et linies felt.\\
+En lineedit har flg. attributer:
+\begin{itemize}
+\item \textit{value} - Den tekst som skal vises i lineediten. Hvis
+  udeladt vil lineediten være tom.
+\item \textit{regexp} - Et regulært udtryk som benyttes til at
+  validere feltet. Hvis udeladt accepterer feltet alle inputs. Læs
+  mere om de regulære udtryk her:
+  \verb|http://doc.trolltech.com/4.3/qregexp.html#introduction|
+\end{itemize}
+
+\subsection{\texttt{textedit} elementet}
+En textedit benyttes ligesom lineedit til at læse input fra brugeren i
+kraft af tekst.\\
+Textediten kan have et regulært udtryk tilknyttet, som validerer input
+mens der tastes og ændrer feltets baggrundsfarve afhængig af om feltet
+indeholder valid data eller ej.\\
+Feltet er modsat lineedit et flerliniers felt.\\
+En textedit har flg. attributer:
+\begin{itemize}
+\item \textit{value} - Den tekst som skal vises i textediten. Hvis
+  udeladt vil textediten være tom.
+\item \textit{regexp} - Et regulært udtryk som benyttes til at
+  validere feltet. Hvis udeladt accepterer feltet alle inputs. Læs
+  mere om de regulære udtryk her:
+  \verb|http://doc.trolltech.com/4.3/qregexp.html#introduction|
+\end{itemize}
+
+\subsection{\texttt{button} elementet}
+En knap kan benyttes til enten at afbryde makroen eller at acceptere
+dens indhold og dermed gemme dataene på serveren.\\
+En knap har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i knappen. Hvis
+  udeladt vises knappen uden tekst.
+\item \textit{action} - Den handling som skal udføres når der trykkes
+  på knappen. Kan være ``abort'' eller ``commit'', hvor ``abort
+  afbryder makroen, og ``commit'' gemmer makroen i databasen og i
+  journalen. Hvis udeladt vil en inaktiv knap blive produceret.
+\end{itemize}
+
+\subsection{\texttt{checkbox} elementet}
+En checkbox bruges til at aktivere eller deaktivere en given værdi ved
+hjælp af flueben.\\
+En checkbox har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i knappen. Hvis
+  udeladt vises checkboxen uden tekst.
+\item \textit{value} - Den værdi som checkboxen har intielt. Kan
+  ``true'' eller ``false''. Hvis udeladt vil checkboxen få værdien
+  ``false''.
+\end{itemize}
+
+\subsection{\texttt{radiobutton} elementet}
+En radiobutton bruges til at vælge et element ud af en gruppe.\\
+En radiobutton tilhører automatisk den samme gruppe som resten af de
+radiobuttons som befinder sig i samme widget (f.eks frame eller
+window).\\
+En radiobutton har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i knappen. Hvis
+  udeladt vises radiobuttonen uden tekst.
+\item \textit{value} - Den værdi som radiobuttonen har intielt. Kan
+  ``true'' eller ``false''. Hvis udeladt vil checkboxen få værdien
+  ``false''.
+\end{itemize}
+
-- 
cgit v1.2.3

