diff options
author | deva <deva> | 2008-12-09 13:55:10 +0000 |
---|---|---|
committer | deva <deva> | 2008-12-09 13:55:10 +0000 |
commit | 9d982a5b4fc9c7efaa56c8f7a4130361f26b0302 (patch) | |
tree | 2594bda7b24f43718fcccc5061c417079c01850f /design | |
parent | 2d53f43441e22352ded6413e349131fdb8b4f3bf (diff) |
A little something about metawidgets, and format strings
Diffstat (limited to 'design')
-rw-r--r-- | design/format.tex | 17 | ||||
-rw-r--r-- | design/pml.tex | 21 | ||||
-rw-r--r-- | design/preamble.tex | 5 | ||||
-rw-r--r-- | design/widgets/metawidget.tex | 27 | ||||
-rw-r--r-- | design/xmlformat.tex | 23 |
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} |