summaryrefslogtreecommitdiff
path: root/design
diff options
context:
space:
mode:
authordeva <deva>2008-12-09 13:55:10 +0000
committerdeva <deva>2008-12-09 13:55:10 +0000
commit9d982a5b4fc9c7efaa56c8f7a4130361f26b0302 (patch)
tree2594bda7b24f43718fcccc5061c417079c01850f /design
parent2d53f43441e22352ded6413e349131fdb8b4f3bf (diff)
A little something about metawidgets, and format strings
Diffstat (limited to 'design')
-rw-r--r--design/format.tex17
-rw-r--r--design/pml.tex21
-rw-r--r--design/preamble.tex5
-rw-r--r--design/widgets/metawidget.tex27
-rw-r--r--design/xmlformat.tex23
5 files changed, 67 insertions, 26 deletions
diff --git a/design/format.tex b/design/format.tex
new file mode 100644
index 0000000..3b4d9e6
--- /dev/null
+++ b/design/format.tex
@@ -0,0 +1,17 @@
+% -*- coding: utf-8 -*-
+\subsubsection{Formatstrengs formatet}
+\label{format}
+En format streng er en streng som bliver sammensat af delelementer.\\
+Strengen består dels af rå tekst, og dels af specielle koder som
+angiver at der skal indsættes en værdi fra en widget.\\
+Et eksempel på en formatstreng:
+\begin{verbatim}
+Der findes ${number_of_people} mennesker i verden.
+\end{verbatim}
+Her vil delstrengen \verb|${number_of_people}| blive erstattet af den
+faktiske værdi af feltet \verb|number_of_people|.\\
+De værdier som er til rådighed er alle værdier som findes i makroen,
+ikke blot dem som hører til den ydre makro, men også dem som er skjult
+inde i f.eks. metawidgets.\\
+Det er på nuværende tidpunkt ikke muligt at bruge sekvensen \verb|${|
+i den rå tekst, der findes altså ingen måde at \textit{escape} den på.
diff --git a/design/pml.tex b/design/pml.tex
index 6357a8f..5f6ba37 100644
--- a/design/pml.tex
+++ b/design/pml.tex
@@ -7,12 +7,14 @@
\definecolor{keywordcolour}{rgb}{0.72, 0.52, 0.04}
\definecolor{stringcolour}{rgb}{0.73, 0.56, 0.56}
\definecolor{identifiercolour}{rgb}{0.0, 0.0, 0.0}
+\definecolor{xmlheadercolour}{rgb}{0.62, 0.12, 0.94}
\usepackage{listings}
\lstset{
basicstyle=\ttfamily\small,
keywordstyle=[0]\color{tagcolour},
keywordstyle=[1]\color{keywordcolour},
+ keywordstyle=[2]\color{xmlheadercolour},
identifierstyle=\color{identifiercolour},
commentstyle=\color{commentcolour},
stringstyle=\color{stringcolour},
@@ -20,19 +22,16 @@
}
\lstdefinelanguage{PML}{
- morekeywords=[0]{window,frame,spacer,label,lineedit,textedit,button,%
- checkbox,togglebutton,radiobuttons,combobox,listbox,multilist}, %
- morekeywords=[1]{name,value,caption}, %
+ morekeywords=[0]{commit,request,include,pracro,template,macro,
+ scripts,script,maps,map,window,frame,spacer,label,lineedit,textedit,
+ button,metawidget,checkbox,togglebutton,radiobuttons,combobox,listbox,
+ multilist,field}, %
+ morekeywords=[1]{user,name,value,caption,version,encoding,cpr,width,height,layout,%
+ action,regexp,format}, %
+ morekeywords=[2]{xml},%
tag=**[s]<>,%
sensitive=f,%
morestring=[d]",% ??? doubled
- MoreSelectCharTable=%
- \lst@CArgX--\relax\lst@DefDelimB{}{}%
- {\ifnum\lst@mode=\lst@tagmode\else
- \expandafter\@gobblethree
- \fi}%
- \lst@BeginComment\lst@commentmode{{\lst@commentstyle}}%
- \lst@CArgX--\relax\lst@DefDelimE{}{}{}%
- \lst@EndComment\lst@commentmode
+ morecomment=[s]{<!--}{-->}%
}[keywords,comments,strings,html]%
\lstset{language=PML}
diff --git a/design/preamble.tex b/design/preamble.tex
index 17d4ecf..c9e62dc 100644
--- a/design/preamble.tex
+++ b/design/preamble.tex
@@ -133,11 +133,6 @@
\begin{document}
\maketitle
-\begin{lstlisting}
-<!-- dims -->
-<label caption="dims"/>
-\end{lstlisting}
-
\tableofcontents
\input{xmlformat}
diff --git a/design/widgets/metawidget.tex b/design/widgets/metawidget.tex
new file mode 100644
index 0000000..dc09433
--- /dev/null
+++ b/design/widgets/metawidget.tex
@@ -0,0 +1,27 @@
+% -*- coding: utf-8 -*-
+\subsubsection{\texttt{metawidget} elementet}
+En metawidget er en widget som fungerer som container for andre
+widgets.\\
+En metawidget sammensætter værdierne fra de indre widgets igennem en
+formatstreng, og producerer på den måde et fælles output.\\
+De indre widgets kommer ikke til at indgå som en del af den ydre
+makros værdi liste.\\
+En metawidget kan ikke sætte sin værdi i de indre widgets (grundet
+måden hvorpå disse oprindeligt er indsamlet), så en sat værdi i en
+meta widget vil blot blive ignoreret.\\
+En metawidget har flg. attributter:
+\begin{itemize}
+\item \textit{name} - Navnet på meta widgeten.
+\item \textit{layout} - ``hbox'' eller ``vbox''.
+\item \textit{format} - Format streng som beskriver hvordan værdierne
+ i den indre skal sammensættes (Se dokumentation for format strengens
+ format i kapitel \ref{format}).
+\end{itemize}
+
+\begin{lstlisting}
+<metawidget name="cave_metawidget" layout="vbox"
+ format="Prep: ${prep}, Reak: ${reak}.">
+ <textedit name="prep"/>
+ <textedit name="reak"/>
+</metawidget>
+\end{lstlisting}
diff --git a/design/xmlformat.tex b/design/xmlformat.tex
index 00e4ec9..fcc6c3a 100644
--- a/design/xmlformat.tex
+++ b/design/xmlformat.tex
@@ -5,14 +5,14 @@ foregår ved hjælp af XML.\\
Dokumenterne skal starte med en header som specificerer hvilken
XML verison som benyttes, efterfulgt af rodknuden som skal være af
typen \texttt{pracro}.\\
-\begin{verbatim}
+\begin{lstlisting}
<?xml version="1.0" encoding="UTF-8"?>
<pracro version="1.0" cpr="1505050505">
.
.
.
</pracro>
-\end{verbatim}
+\end{lstlisting}
Det er vigtigt at pointere at alt data i xml dokumentet skal være i
UTF-8 formatering.
@@ -36,12 +36,12 @@ Pracro elementet har flg. attributter:
En request sektion sendt til serveren skal bevirke at serveren inlæser og
sender den angivne makro til klienten.\\
Hvis klienten modtager en request sektion skal den blot ignorere den.
-\begin{verbatim}
+\begin{lstlisting}
<?xml version="1.0" encoding="UTF-8"?>
<pracro version="1.0" cpr="1505050505">
<request macro="visus"/>
</pracro>
-\end{verbatim}
+\end{lstlisting}
\subsection{Makro}
En makro definerer en makro som grafisk viser og eller indsamler data.\\
@@ -49,7 +49,7 @@ En makro sektion sendt til klienten skal bevirke at den beskrevne
grafisk makro vises på skærmen.\\
Hvis serveren modtager en makro sektion skal den blot ignorere den.
Vi starter med et eksempel:
-\begin{verbatim}
+\begin{lstlisting}
<?xml version="1.0" encoding="UTF-8"?>
<pracro version="1.0" cpr="1505050505">
<macro name="macro" version="1.0">
@@ -71,7 +71,7 @@ Vi starter med et eksempel:
</window>
</macro>
</pracro>
-\end{verbatim}
+\end{lstlisting}
Eksemplet illustrerer flg. funktionaliteter: Makroen og den
properties, main vinduet, includes, frames, labels, lineedits og
knapper.\\
@@ -153,13 +153,14 @@ Alle GUI elementerne i xml dokumentet har flg. attributter:
\input{widgets/combobox}
\input{widgets/listbox}
\input{widgets/multilist}
+\input{widgets/metawidget}
\subsection{Commit}
En commit sektion sendt til serveren skal bevirke at serveren lagrer de
sendte data i databasen, samt genererer et resumé som kan blive sendt
tilbage til klienten.\\
Hvis klienten modtager en commit sektion skal den blot ignorere den.
-\begin{verbatim}
+\begin{lstlisting}
<?xml version="1.0" encoding="UTF-8"?>
<pracro version="1.0" cpr="1505050505">
<commit user="johndoe" macro="visus" version="1.0">
@@ -167,7 +168,7 @@ Hvis klienten modtager en commit sektion skal den blot ignorere den.
<field name="visus_subjektiv" value="42"/>
</commit>
</pracro>
-\end{verbatim}
+\end{lstlisting}
\subsubsection{\texttt{commit} elementet}
Commit elementet har flg. attributter:
@@ -188,10 +189,12 @@ Field elementet har flg. attributter:
%En resumé sektion sendt til klienten skal bevirke at klienten appender den
%sendte tekst til PC-Praxis journalfilen.\\
%Hvis serveren modtager en resumé sektion skal den blot ignorere den.
-%\begin{verbatim}
+%\begin{lstlisting}
%<?xml version="1.0" encoding="UTF-8"?>
%<pracro version="1.0" cpr="1505050505">
% <resume macro="visus" version="1.0">Det objektive synsmål var
%42 dioptri, og det subjektive synsmål var 42 dioptri.</resume>
%</pracro>
-%\end{verbatim}
+%\end{lstlisting}
+
+\input{format}