summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--design/client.tex4
-rw-r--r--design/preamble.tex1
-rw-r--r--design/transmission.tex12
-rw-r--r--design/xmlformat.tex129
4 files changed, 111 insertions, 35 deletions
diff --git a/design/client.tex b/design/client.tex
new file mode 100644
index 0000000..94613fe
--- /dev/null
+++ b/design/client.tex
@@ -0,0 +1,4 @@
+\section{Klienten}
+Klienten skal vise GUIet som XMLMakroen foreskriver.\\
+Hvis brugerens skærmopløsning er mindre end top vinduets højde
+og bredde angivelser skal vinduet konstrueres med scrollbars.
diff --git a/design/preamble.tex b/design/preamble.tex
index 8b2eac7..b916ab7 100644
--- a/design/preamble.tex
+++ b/design/preamble.tex
@@ -133,6 +133,7 @@
\include{xmlformat}
\include{transmission}
+\include{client}
\end{document}
%*********************************************
diff --git a/design/transmission.tex b/design/transmission.tex
index 9f04aeb..2823c0c 100644
--- a/design/transmission.tex
+++ b/design/transmission.tex
@@ -1,19 +1,19 @@
\section{Data transmission}
-En transmission består af en række deltransmissioner som afhænger af burgerens handling.
+En transmission består af en række deltransmissioner som afhænger af
+brugerens handling.
\begin{itemize}
\item Klienten beder om en XMLMakro by-name.
\item Serveren genererer makroen og sender den til klienten i en XML
- stream.
+ stream. Forbindelsen lukkes efter end overførsel.
\item Brugeren udfylder input felterne og trykker på ``commit'' eller
``abort'' knappen.
-\item Hvis der blev trykket ``abort'' lukkes vinduet og en ABORT besked
- sendes til serveren som afbryder transmissionen.
+\item Hvis der blev trykket ``abort'' lukkes vinduet.
\item Hvis der blev trykket ``commit'' genereres et XML dokument på
klienten indeholdene alle input felternes navne og deres tilhørende
værdier.
-\item Dette XML dokument sendes til serveren.
+\item Dette XML dokument sendes til serveren via en nyoprettet forbindelse.
\item Serveren producerer en plaintext klump som repræsenterer
-\item Texten sendes til klienten som appender til den PC-Praxis
+\item Teksten sendes til klienten som appender til den PC-Praxis
journalfilen.
\item Klienten svarer til serveren at alt gik godt (eller det modsatte) og
makrovinduet lukkes.
diff --git a/design/xmlformat.tex b/design/xmlformat.tex
index 03817a5..781bb24 100644
--- a/design/xmlformat.tex
+++ b/design/xmlformat.tex
@@ -2,7 +2,7 @@
Vi starter med et eksempel:
\begin{verbatim}
<?xml version="1.0" encoding="UTF-8"?>
-<macro name="test_macro" cpr="1505050505" version="1.0">
+<macro name="test_macro" cpr="1505050505" version="1.0" macro_version="1.0">
<window name="mainwindow"
caption="This is the mainwindow"
width="800"
@@ -14,6 +14,7 @@ Vi starter med et eksempel:
<lineedit name="lineedit1" regexp="[0-9]+"/>
</frame>
<frame name="bottom_frame" layout="hbox">
+ <spacer />
<button caption="Close window" action="abort"/>
<button caption="Commit changes" action="commit"/>
</frame>
@@ -36,53 +37,86 @@ 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:
+\subsection{\texttt{macro} elementet}
+Makro elementet brges som indpakning til hele makroen. Den
+identificerer makroen og angiver en række værdier som skal bruges til
+opsætning på klienten.\\
+Makroen har flg. attributter:
+\begin{itemize}
+\item \textit{name} - Navnet på makroen. Navnet skal matche det navn
+ som klienten har bedt om.\\
+ Navnet må udelukkende indeholdene de almindelige bogstaver, samt
+ underscore, dvs. \verb|[a-z0-9_]+|, hvis det skrives ud som regulært
+ udtryk.\\
+ Dette felt må ikke undlades.
+\item \textit{cpr} - CPR nummeret på den patient som makroen er
+ knyttet til. Dette CPR nummer skal matche det CPR nummer som
+ klienten har bedt om.\\
+ Bruges blandt andet ved den afsluttende lagring af data.\\
+ Dette felt må ikke undlades.
+\item \textit{version} - Dette felt fortæller hvilken version af XML
+ specifikationen som er benyttet i dokumentet.\\
+ Denne variabel skal matche den version klienten forventer.\\
+ Dette felt må ikke udelades.
+\item \textit{macro\_version} - Dette felt fortæller hvilken version
+ den konkrete makro har.\\
+ Dette felt må ikke udelades.
+\end{itemize}
+
+\subsection{\texttt{include} elementet}
+Include elementet kan kun frekomme serverside, hvor det vil blive
+udvidet med den angivne makro.\\
+Serveren indsætter alle elementer fra (og ikke med) makroens rodvindue
+og indad på det sted hvor include elementet befinder sig.\\
+Include har flg. attributter:
+\begin{itemize}
+\item \textit{name} - Navnet på den makro som skal inkluderes.
+\item \textit{disabled} - Angiver om den indsatte makro skal
+ disables. Kan have værdierne ``true'' eller ``false''. Hvis udeladt
+ benyttes værdien ``false''.
+\end{itemize}
+
+\subsection{Generelle GUI attributter}
+Alle GUI elementerne i xml dokumentet har flg. attributter:
\begin{itemize}
\item \textit{name} - Navnet på elementet. Bruges ved data
nedlæsning.\\
Navnet må udelukkende indeholdene de almindelige bogstaver, samt
underscore, dvs. \verb|[a-z0-9_]+|, hvis det skrives ud som regulært
udtryk.\\
- Navnet skal være unikt på det niveau hvor elementet befinder sig.
+ Navnet skal være unikt på det niveau hvor elementet befinder sig.\\
+ Navnet må ikke undlades.
\item \textit{width} - Et positivt heltal som sætter bredden af
elementet. Hvis den er udeladt benyttes elementets default bredde.
\item \textit{height} - Et positivt heltal 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.
+\item \textit{disabled} - Denne attribut kan være enten ``true'' eller
+ ``false''. Hvis den er ``true'' vil elementet blive tegnet disabled
+ samt alle dets children rekursivt. Hvis undladt benyttes værdien ``false''.
\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:
+Et vindue har flg. attributter:
\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''.
+\item \textit{layout} - Vinduets layout engine. Kan have værdierne
+ ``hbox'' eller ``vbox''. Hvis udeladt benyttes et vbox layout.
\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:
+En frame har flg. attributter:
\begin{itemize}
\item \textit{caption} - Den tekst som skal vises i framen. Hvis
udeladt vises framen som en tom ramme.
@@ -92,6 +126,22 @@ En frame har flg. attributer:
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.
+\item \textit{layout} - Framens layout engine. Kan have værdierne
+ ``hbox'' eller ``vbox''. Hvis udeladt benyttes et vbox layout.
+\end{itemize}
+
+\subsection{\texttt{spacer} elementet}
+Et spacer element bruges for at pakke andre elementer i et layout.\\
+En spacer har ingen attributter.
+
+\subsection{\texttt{label} elementet}
+En label benyttes til at indsætte beskrivejnde tekst i makroen.\\
+En label har flg. attributter:
+\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{lineedit} elementet}
@@ -100,7 +150,7 @@ 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:
+En lineedit har flg. attributter:
\begin{itemize}
\item \textit{value} - Den tekst som skal vises i lineediten. Hvis
udeladt vil lineediten være tom.
@@ -117,7 +167,7 @@ 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:
+En textedit har flg. attributter:
\begin{itemize}
\item \textit{value} - Den tekst som skal vises i textediten. Hvis
udeladt vil textediten være tom.
@@ -130,20 +180,21 @@ En textedit har flg. attributer:
\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:
+En knap har flg. attributter:
\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.
+ på knappen. Kan være ``abort'', ``commit'' eller ``reset'', hvor ``abort''
+ afbryder makroen, ``commit'' gemmer makroen i databasen og i
+ journalen og ``reset'' fjerner alle indtastede data. 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:
+En checkbox har flg. attributter:
\begin{itemize}
\item \textit{caption} - Den tekst som skal vises i knappen. Hvis
udeladt vises checkboxen uden tekst.
@@ -152,17 +203,37 @@ En checkbox har flg. attributer:
``false''.
\end{itemize}
+\subsection{\texttt{togglebutton} elementet}
+En togglebutton bruges til at aktivere eller deaktivere en given værdi ved
+brug af en trykknap.\\
+En togglebutton har flg. attributter:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i knappen. Hvis
+ udeladt vises knappen uden tekst.
+\item \textit{value} - Den værdi som knappen har intielt. Kan
+ ``true'' eller ``false''. Hvis udeladt vil den 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:
+En radiobutton har flg. attributter:
\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''.
+\item \textit{group} - Et id som beskriver hvilken gruppe
+ radiobuttonen er en del af. Gruppe id'et kan have værdier i
+ \verb|[a-z0-9_]+|.\\
+ Hvis udeladt tilhører den automatisk den samme gruppe som resten af
+ de radiobuttons som befinder sig i samme widget (f.eks frame eller
+ window).\\
\end{itemize}
+\subsection{\texttt{combobox} elementet}
+Kommer snart...
+
+\subsection{\texttt{listbox} elementet}
+Kommer snart...